Hi,

I have looked through the openssl-dev archives and have not found any
references to using PKCS12 certificates - only how to create/manipulate
them with the openssl tool etc.

Has anyone successfully created an SSL server application linked against
the openssl libraries, that uses a PKCS12 certificates?

Any help would be most appreciated...

C ya,

Jimmy

>Hi,
>
>I am having trouble using the "X509* ssl_public_cert" created from the code
>at the end of this message. This code runs fine without error, but when I
>call: 
>
>SSL_use_certificate(ssl_con, ssl_public_cert) (or
>SSL_CTX_use_certificate(...) )
>
>It fails with SSL_R_UNKNOWN_CERTIFICATE_TYPE. I did some debugging and it
>fails trying to find out what "type" 
>
>type=OBJ_obj2nid(ASN1_OBJECT *x->cert_info->key->algor->algorithm);
>
>this gives back a invalid type. Everything seems fine till it tries to
>search the ASN1_OBJECT.
>
>I have tryed using many different p12 certificates and all give the same
>error, and yet all appear find when using the openssl tool. Even a PEM
>certificate which works fine, when converted to pkcs#12 format fails.
>
>I am using version Openssl 0.9.3a, and the same thing happens on NT,
>Solaris and OSF1.
>
>Any ideas would be greatly appreciated. Thanks.
>
>Best Regards,
>
>Jimmy
>
>/* PKCS12 format */
>       PKCS12 *p12=NULL;
>       EVP_PKEY *pkey;
>       X509 *cert;
>
>       if ((fp=fopen(certificate_file, "r"))==NULL)
>           dce_svc_printf(WAND_S_CANT_FOPEN_MSG, certificate_file, "r",
>errno);   
>       
>       if ((ssl_public_cert=X509_new()) == NULL)
>           dce_svc_printf(WAND_S_NO_MEMORY_MSG);
>
>       if ((ssl_private_key=RSA_new()) == NULL)
>           dce_svc_printf(WAND_S_NO_MEMORY_MSG);
>
>       if (!(p12 = d2i_PKCS12_fp(fp,NULL))) {
>           dce_svc_printf(SDG_S_PKCS12_READ_MSG,
>                        certificate_file, sslerrno());
>           }
>       if (!PKCS12_parse(p12, pass_key, &pkey, &cert, NULL)) {
>           dce_svc_printf(SDG_S_PKCS12_PARSE_MSG,
>                        certificate_file, sslerrno());
>           }
>       memcpy((void *)ssl_public_cert, (void *)cert, sizeof (X509));
>       X509_free(cert);
>
>       if (pkey->type == EVP_PKEY_RSA) {
>          memcpy((void *)ssl_private_key, pkey->pkey.ptr, sizeof(struct
>rsa_st))
>;
>       }
>       else {
>                 dce_svc_printf(SDG_S_X509_READ_MSG,
>                        key_file, sslerrno());
>           }
>       PKCS12_free(p12);
>       EVP_PKEY_free(pkey);
>       fclose(fp);
> 
>----------------------------------------------------------
>    James Darwin                   [EMAIL PROTECTED]
> Senior Software Engineer          http://www.dascom.com
>  DASCOM Australia.  
>----------------------------------------------------------
>
>______________________________________________________________________
>OpenSSL Project                                 http://www.openssl.org
>Development Mailing List                       [EMAIL PROTECTED]
>Automated List Manager                           [EMAIL PROTECTED]
>
----------------------------------------------------------
    James Darwin                    [EMAIL PROTECTED]
   DASCOM Australia.            http://www.dascom.com
----------------------------------------------------------

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to