LINUX.ORG.RU

openssl - работа с ключами


0

0

надо создать ключ из строки, делаю так как подсмотрел в исходниках...

char *pch = "-----BEGIN RSA PUBLIC KEY-----MIGfMa... и так далее...IDAQAB-----END RSA PUBLIC KEY-----\0"; BIO *_bio_mem = NULL; _bio_mem = BIO_new(BIO_s_mem());//можно и по другому... например BIO_new_mem_buf((void*)pch, strlen(pch)) - суть одна long len = strlen(pch);

BIO_write(_bio_mem, (void*)pch, len);

char *nm = NULL, *header = NULL; unsigned char *data = NULL; long l;

int ret = PEM_read_bio(_bio_mem, &mn, &header, &data, &l);

assert(NULL != data);

//далее не идёт - данные не считываются

EVP_PKEY *key = NULL;

if(strcmp(nm, PEM_STRING_RSA) == 0) key = d2i_PrivateKey(EVP_KEY_RSA, NULL, &data, l); else if(strcmp(nm, PEM_STRING_RSA_PUBLIC) == 0) key = d2i_PublicKey(EVP_KEY_RSA, NULL, &data, l);

assert(NULL != key);

//ну и естесственно сюда не доходим никогда

В обчим - код не работает, в чём лажа не могу понять... уже парит дебагить... хто нить знает как сделать это правильно?

anonymous

разобрался - не хватало \n в массиве ключа

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.