这里把一个X509结构体的一个证书转变为DER格式的数据,保存为文件或存储到LDAP中
char *Cert_buf,*byte;
len = i2d_X509(x, NULL);
byte = (char*)malloc(len);
if (byte == NULL)
{
BIO_printf(bio_err,"malloc error!/n");
BIO_free(in);
goto end;
}
Cert_buf = byte;
i2d_X509(x, &byte);//证书的DER编码二进制格式保存在buf中
byte = (char*)malloc(len);
if (byte == NULL)
{
BIO_printf(bio_err,"malloc error!/n");
BIO_free(in);
goto end;
}
Cert_buf = byte;
i2d_X509(x, &byte);//证书的DER编码二进制格式保存在buf中
i2d_X509函数的byte指针在转换的过程中发生了变化最后变为byte=Cert_buf+len;
这个地方让我载了不小的跟头。