Форум: "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