GENERATED_CLASS,
{ COMMON_ATTRS,
{ CKA_X_PURPOSE, REQUIRE | CREATE },
- { CKA_VALUE, CREATE },
+ { CKA_X_CERTIFICATE_VALUE, CREATE },
{ CKA_X_ASSERTION_TYPE, REQUIRE | CREATE },
{ CKA_ISSUER, CREATE },
{ CKA_SERIAL_NUMBER, CREATE },
CK_ATTRIBUTE autogen = { CKA_X_GENERATED, &truev, sizeof (truev) };
CK_ATTRIBUTE purpose = { CKA_X_PURPOSE, };
CK_ATTRIBUTE invalid = { CKA_INVALID, };
+ CK_ATTRIBUTE certificate_value = { CKA_X_CERTIFICATE_VALUE, };
CK_ATTRIBUTE *issuer;
CK_ATTRIBUTE *serial;
int i;
if (type == CKT_X_DISTRUSTED_CERTIFICATE) {
- value = &invalid;
+ certificate_value.type = CKA_INVALID;
issuer = p11_attrs_find_valid (cert, CKA_ISSUER);
serial = p11_attrs_find_valid (cert, CKA_SERIAL_NUMBER);
p11_debug ("not building positive trust assertion for certificate without value");
return;
}
+
+ certificate_value.pValue = value->pValue;
+ certificate_value.ulValueLen = value->ulValueLen;
}
label = p11_attrs_find (cert, CKA_LABEL);
attrs = p11_attrs_build (NULL, &klass, &private, &modifiable,
id, label, &assertion_type, &purpose,
- issuer, serial, value, &autogen, NULL);
+ issuer, serial, &certificate_value, &autogen, NULL);
return_if_fail (attrs != NULL);
if (!p11_array_push (array, attrs))
CK_RV rv;
CK_ATTRIBUTE match_positive[] = {
- { CKA_VALUE, },
+ { CKA_X_CERTIFICATE_VALUE, },
{ CKA_CLASS, &assertion, sizeof (assertion) },
{ CKA_X_GENERATED, &generated, sizeof (generated) },
{ CKA_INVALID }
value = p11_attrs_find_valid (cert, CKA_VALUE);
if (value) {
positives = p11_array_new (NULL);
- memcpy (match_positive, value, sizeof (CK_ATTRIBUTE));
+ match_positive[0].pValue = value->pValue;
+ match_positive[0].ulValueLen = value->ulValueLen;
}
issuer = p11_attrs_find_valid (cert, CKA_ISSUER);
{ CKA_CLASS, &trust_assertion, sizeof (trust_assertion) },
{ CKA_X_PURPOSE, (void *)P11_OID_SERVER_AUTH_STR, sizeof (P11_OID_SERVER_AUTH_STR) - 1 },
{ CKA_LABEL, "Custom Label", 12 },
- { CKA_VALUE, (void *)test_cacert3_ca_der, sizeof (test_cacert3_ca_der) },
+ { CKA_X_CERTIFICATE_VALUE, (void *)test_cacert3_ca_der, sizeof (test_cacert3_ca_der) },
{ CKA_X_ASSERTION_TYPE, &anchored_certificate, sizeof (anchored_certificate) },
{ CKA_ID, "cacert3", 7 },
{ CKA_INVALID },
{ CKA_CLASS, &trust_assertion, sizeof (trust_assertion) },
{ CKA_X_PURPOSE, (void *)P11_OID_CLIENT_AUTH_STR, sizeof (P11_OID_CLIENT_AUTH_STR) - 1 },
{ CKA_LABEL, "Custom Label", 12 },
- { CKA_VALUE, (void *)test_cacert3_ca_der, sizeof (test_cacert3_ca_der) },
+ { CKA_X_CERTIFICATE_VALUE, (void *)test_cacert3_ca_der, sizeof (test_cacert3_ca_der) },
{ CKA_X_ASSERTION_TYPE, &anchored_certificate, sizeof (anchored_certificate) },
{ CKA_ID, "cacert3", 7 },
{ CKA_INVALID },
static CK_ATTRIBUTE anchor_assertion[] = {
{ CKA_CLASS, &trust_assertion, sizeof (trust_assertion) },
{ CKA_X_PURPOSE, (void *)P11_OID_SERVER_AUTH_STR, sizeof (P11_OID_SERVER_AUTH_STR) - 1 },
- { CKA_VALUE, (void *)test_cacert3_ca_der, sizeof (test_cacert3_ca_der) },
+ { CKA_X_CERTIFICATE_VALUE, (void *)test_cacert3_ca_der, sizeof (test_cacert3_ca_der) },
{ CKA_X_ASSERTION_TYPE, &anchored_certificate, sizeof (anchored_certificate) },
{ CKA_ID, "cacert3", 7 },
{ CKA_INVALID },