Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];

Вниз

OpenSSL   Найти похожие ветки 

 
Thunderstorm   (2008-07-11 10:40) [0]

Пробовал по этой статье http://www.disi.unige.it/person/FerranteM/delphiopenssl/index.html
Ключи генеряться прекрасно а вот RSA+MD5 signature работать не хочет, помогите разобраться.


 
umbra ©   (2008-07-11 11:08) [1]

а что, собственно, не получается?


 
Thunderstorm   (2008-07-11 17:17) [2]

сгенерил 2 ключа вот этой процедурой
procedure GenerateKeyPair;
var
 kp: TKeyPairGenerator;
begin
kp := TKeyPairGenerator.Create;
kp.KeyFileNames("c:\temp\mykeys");  // it create a pair c:\temp\mykeys.key
                                   // and c:\temp\mykeys.pub
kp.Password := "mypasswd";          // Required
kp.GenerateRSA;
end;

дальше мне надо создать подпись
пробую как на сайте написано
function Sign_RSA_MD5(privatekey,msg: string): string;
var
Len: cardinal;
mdctx: EVP_MD_CTX;
inbuf, outbuf: array [0..1023] of char;
key: pEVP_PKEY;
begin
StrPCopy(inbuf, msg);
InitOpenSSL;
key:=ReadPrivateKey(privatekey);
EVP_SignInit(@mdctx, EVP_md5());
EVP_SignUpdate(@mdctx, @inbuf, StrLen(inbuf));
EVP_SignFinal(@mdctx, @outbuf, Len, key);
FreeOpenSSL;
BinToHex(outbuf, inbuf,Len);
inbuf[2*Len]:=#0;
result := StrPas(inbuf);
end;

при компиляции ругаеться что незнает InitOpenSSL, ReadPrivateKey, FreeOpenSSL

в целом задача такая(это пример для проверки):
есть пирватный ключ:
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC+gD1T4ytZIvq3OWU3TBc3FNqEN1pCk3bVdRIH7PoE7fSvyjBR
dtFdsToPQEIkURuFdqDzdWnkEmA+boFYJ9TUMokbx7RYt5jCGE7/S9/G/6DFCVLF
C5I6P2uengppDNBjyWaAiYMkvJLVIo7E+S8Y2GAVrluy/YKvXLVzijBSPwIDAQAB
AoGAUEjzj7sZtcNMLpP92EQ1NH2Rak95tr03Q9bG9pgk9pbinIN1wZ91tSrP8UV/
mpakJqdMRc6iBgDIlwczc9e1lc0cSMaYp+IN4J4Td/ZBxG/hdguE8hcL+3GP4h6I
aX39yXsLxIlgv/BRvTktVAPNsFFUEvZ6JMbMBlMMLrjeuwECQQD4OgWMXQ+NR5eA
b19pOSin+qVb+XALqUJu9lhRvRssv5cUwGKMRGvgRpaEOnJCQ0OP2zOwkfojIuvT
6DcShruhAkEAxHdxjo9kzD4V1Pi+AtDI0IgTUn0OmFdtXQ0ZFO0YbbJ8nekdYqtN
JiKFemFmPgrTjMUOYhCBHwdeG18SOs9B3wJBANG7xKBaqR9IVFwyvj0cDJwSDdHu
qptPwlAbWXiG/gULRM5F136I+VUgj2DeOVh/mQBdyAjy7pTtlrEPziibKsECQQCL
NvQhh5xuWaQQuH2z8wwJMBM5BWKdMn5NTGW0fVktCifhoXjwHOBbIGUi1fekCPnk
qxHJDVbhjM/zZ0e8onZTAkEA3quKkqMHnjbDB8f0dhpsl21KfoRrEElvd3PvYW1w
KXYxSIA0fBzNLG2DbCPaaiqQYukBOVRRFZbWW5zdg0gbLQ==
-----END RSA PRIVATE KEY-----

нужно имея данные:

OPERATION[\r\n]
id=071127006641252[\r\n]
checkid=641252[\r\n]
product=5725[\r\n]
value=100.00RUR[\r\n]
account=9165556677[\r\n]
timeout=15[\r\n]
cnfmode=1[\r\n]
где [\r\n] перенос строки или #13#10

По алгоритму MD5, в формате base64 получить подпись:

WeOxhkSMlZDXqc1D4a/OQz2875FPPkXRShvxgc/DFEYktX3N1RgI6WqgNSXzqoDlt8MUpu7yFE0bkjC
EpWoQXEkaQSUMoalwPS27gHxNooVKB1otpLjEQbqYMywwYf5Yz3NhxQCHgiIfNbdvqbqDKEn0SZV6Bb
NXBSunFPPjRew=

Впринципе не важно каким способом, подскажите как реализовать, раньше не сталкивался очень надо


 
umbra ©   (2008-07-12 13:29) [3]


> при компиляции ругаеться что незнает InitOpenSSL, ReadPrivateKey,
>  FreeOpenSSL

ну, надо же наверное модуль подключить, где эти функции есть


 
Palladin ©   (2008-07-14 08:27) [4]

1. сети то тут причем?
2. если кросс-платформенность неважна, то рекомендую использовать CryptAPI, там все просто и понятно. В твоем случае можешь начинать копать с CryptCreateHash,CryptHashData,CryptSignHash.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.004 c
2-1246031571
rus
2009-06-26 19:52
2009.08.30
запрос в firebrid


2-1246437194
abhtr
2009-07-01 12:33
2009.08.30
Как программно нажать клавиши Alt+стрелка вниз


15-1246394110
Юрий
2009-07-01 00:35
2009.08.30
С днем рождения ! 1 июля 2009 среда


2-1246660919
Frizel07
2009-07-04 02:41
2009.08.30
Не загружается GIF из .res файла.


2-1246604370
Neket
2009-07-03 10:59
2009.08.30
Как узнать колличество записей в DBGrid?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский