Главная страница
    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-1246386849
AndrewG
2009-06-30 22:34
2009.08.30
Modal


1-1212955915
andreil
2008-06-09 00:11
2009.08.30
Дельфийский интерфейс для Сишных прог


2-1246549168
vslabchenko
2009-07-02 19:39
2009.08.30
Парадокс с ShellExecute


15-1246469626
dmk
2009-07-01 21:33
2009.08.30
Бесперебойники


3-1226570266
Alex sh
2008-11-13 12:57
2009.08.30
DELPHI MS SQL Oracle





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский