Пример #1
0
static BIT_STRING_BITNAME key_usage_type_table[] = {
	{0, "Digital Signature", "digitalSignature"},
	{1, "Non Repudiation", "nonRepudiation"},
	{2, "Key Encipherment", "keyEncipherment"},
	{3, "Data Encipherment", "dataEncipherment"},
	{4, "Key Agreement", "keyAgreement"},
	{5, "Certificate Sign", "keyCertSign"},
	{6, "CRL Sign", "cRLSign"},
	{7, "Encipher Only", "encipherOnly"},
	{8, "Decipher Only", "decipherOnly"},
	{-1, NULL, NULL}
};


const X509V3_EXT_METHOD v3_nscert =
    EXT_BITSTRING(NID_netscape_cert_type, ns_cert_type_table);
const X509V3_EXT_METHOD v3_key_usage =
    EXT_BITSTRING(NID_key_usage, key_usage_type_table);

STACK_OF(CONF_VALUE) *
i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits,
    STACK_OF(CONF_VALUE) *ret)
{
	BIT_STRING_BITNAME *bnam;

	for (bnam = method->usr_data; bnam->lname; bnam++) {
		if (ASN1_BIT_STRING_get_bit(bits, bnam->bitnum))
			X509V3_add_value(bnam->lname, NULL, &ret);
	}
	return ret;
}
Пример #2
0
static BIT_STRING_BITNAME key_usage_type_table[] = {
{0, "Digital Signature", "digitalSignature"},
{1, "Non Repudiation", "nonRepudiation"},
{2, "Key Encipherment", "keyEncipherment"},
{3, "Data Encipherment", "dataEncipherment"},
{4, "Key Agreement", "keyAgreement"},
{5, "Certificate Sign", "keyCertSign"},
{6, "CRL Sign", "cRLSign"},
{7, "Encipher Only", "encipherOnly"},
{8, "Decipher Only", "decipherOnly"},
{-1, NULL, NULL}
};



const X509V3_EXT_METHOD v3_nscert = EXT_BITSTRING(NID_netscape_cert_type, ns_cert_type_table);
const X509V3_EXT_METHOD v3_key_usage = EXT_BITSTRING(NID_key_usage, key_usage_type_table);

STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
	     ASN1_BIT_STRING *bits, STACK_OF(CONF_VALUE) *ret)
{
	BIT_STRING_BITNAME *bnam;
	for(bnam =method->usr_data; bnam->lname; bnam++) {
		if(ASN1_BIT_STRING_get_bit(bits, bnam->bitnum)) 
			X509V3_add_value(bnam->lname, NULL, &ret);
	}
	return ret;
}
	
ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
	     X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval)