示例#1
0
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);
}
示例#2
0
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 );
}
示例#3
0
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;
}
示例#4
0
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;
};