int PKI_X509_CERT_get_keysize(const PKI_X509_CERT *x ) { const PKI_X509_KEYPAIR_VALUE *pkey = NULL; if (!x || !x->value) return (0); if ((pkey = PKI_X509_CERT_get_data(x, PKI_X509_DATA_KEYPAIR_VALUE)) == NULL) { return (0); } return PKI_X509_KEYPAIR_VALUE_get_size(pkey); }
int PKI_X509_KEYPAIR_get_size ( PKI_X509_KEYPAIR *k ) { PKI_X509_KEYPAIR_VALUE *pKey = NULL; if (!k) { PKI_ERROR(PKI_ERR_PARAM_NULL, NULL); return -1; }; pKey = k->value; return PKI_X509_KEYPAIR_VALUE_get_size ( pKey ); }
int PKI_X509_CERT_get_keysize ( PKI_X509_CERT *x ) { int keysize = 0; PKI_X509_KEYPAIR_VALUE *pkey = NULL; if( !x || !x->value ) return (0); if((pkey = PKI_X509_CERT_get_data(x, PKI_X509_DATA_KEYPAIR_VALUE))==NULL){ return (0); } keysize = PKI_X509_KEYPAIR_VALUE_get_size( pkey ); return keysize; }
PKI_ALGOR * PKI_X509_KEYPAIR_VALUE_get_algor ( PKI_X509_KEYPAIR_VALUE *pVal ) { PKI_ALGOR *ret = NULL; int size = -1; int algId = -1; size = PKI_X509_KEYPAIR_VALUE_get_size(pVal); if (size <= 0) PKI_ERROR(PKI_ERR_GENERAL, "Key size is 0!"); switch (EVP_PKEY_type(pVal->type)) { case EVP_PKEY_DSA: algId = PKI_ALGOR_DSA_SHA1; break; case EVP_PKEY_RSA: algId = PKI_ALGOR_RSA_SHA256; break; #ifdef ENABLE_ECDSA case EVP_PKEY_EC: if ( size < 256 ) { algId = PKI_ALGOR_ECDSA_SHA1; } else if ( size < 384 ) { algId = PKI_ALGOR_ECDSA_SHA256; } else if ( size < 512 ) { algId = PKI_ALGOR_ECDSA_SHA384; } else { algId = PKI_ALGOR_ECDSA_SHA512; }; break; #endif default: return ret; }; if( algId > 0 ) ret = PKI_ALGOR_get ( algId ); return ret; };