RT
我现在有一段RSA秘钥,如何通过openssl 添加到我的数字证书中呢?
另外如何才能从这个证书中提取这个证书呢?
//加密
char * Base64Encode(const char * input, int length, bool with_new_line)
{
if(!input || !length)
return NULL;
BIO * bmem = NULL;
BIO * b64 = NULL;
BUF_MEM * bptr = NULL;
b64 = BIO_new(BIO_f_base64());
if(!with_new_line) {
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
}
bmem = BIO_new(BIO_s_mem());
b64 = BIO_push(b64, bmem);
BIO_write(b64, input, length);
BIO_flush(b64);
BIO_get_mem_ptr(b64, &bptr);
char * buff = (char *)malloc(bptr->length + 1);
memcpy(buff, bptr->data, bptr->length);
buff[bptr->length] = '\0';
BIO_free_all(b64);
return buff;
}
//解码
char* Base64Decode(const char* input, int length, bool with_new_line)
{
if(!input || !length)
return NULL;
BIO * b64 = NULL;
BIO * bmem = NULL;
char * buffer = (char *)malloc(length);
memset(buffer, 0, length);
b64 = BIO_new(BIO_f_base64());
if(!with_new_line) {
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
}
bmem = BIO_new_mem_buf(input, length);
bmem = BIO_push(b64, bmem);
unsigned int size = BIO_read(bmem, buffer, length);
buffer[size] = '\0';
BIO_free_all(bmem);
//调试时建议这里加log,看看你的输入输出分别是什么
return buffer;
}