2014-12-08 6 views
1

У меня есть некоторые проблемы при попытке загрузить мой открытый ключ из mem. , прежде чем я использовал PEM_read_RSA_PUBKEY для загрузки ключа с диска. но так как это заставит Cracker получить мой открытый ключ слишком легко. Я хочу загрузить его из CString Вместо файла. и я пытался сделать это следующим образом:Открытый открытый ключ OPENSSL RSA из mem

CString csPubKey = 
    L"-----BEGIN PUBLIC KEY-----" 
    L"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/g+aYSWhuJc4J30n5U5iC9cwr" 
    L"N7Su2NeO/EwubqjypfWY8W9B+lfNk9q2CoTyb5LtZI19rLCY8yrX1vIKLMRzHNri" 
    L"LSXNAk+tWsnf7qupJep6mn5EeAPV7AG1p1i7txvoWBf289YI8wlGsr0DMUIfQxAW" 
    L"hSwlRYqJ64wRx7sXMQIDAQAB" 
    L"-----END PUBLIC KEY-----"; 

BIO *bio = BIO_new_mem_buf(CW2A(csPubKey.GetBuffer()),csPubKey.GetLength()); 


if(PEM_read_bio_RSA_PUBKEY(bio,&pRSAPublicKey, 0, 0) == NULL) 
{ 
    CStringA err = ERR_error_string(ERR_get_error(), NULL); 
    //assert(false); 
    return ""; 
} 

и я получаю ошибку ошибку: 0906D06C: Lib (9): FUNC (109): причина (108), когда PEM_read_bio_RSA_PUBKEY. на Google это говорит, что это не начало линии. кто-нибудь знает, что я сделал не так?

ответ

0

Я использую CStringA и исправил проблему, я не знаю, почему CW2A не работает так же.

0

PEM_read_bio_RSA_PUBKEY... on Google it says this is about no start line.

Его широкая нить. Сначала преобразуйте его в узкую строку.

Вы также должны освободить буфер от sPubKey.GetBuffer().


... since this will make Cracker get my public key way too easy.

Ее открытый ключ. Его предназначение должно быть свободно распространено.

+0

Я думаю, что я уже конвертировал его в CW2A (csPubKey.GetBuffer()? – Elyse

+0

Я думаю, что узкая строка такая же, как Ansi, поэтому CW2A работает для этого? – Elyse

Смежные вопросы