mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 12:09:14 +00:00
8365168: Use 64-bit aligned addresses for CK_ULONG access in PKCS11 native key code
Reviewed-by: coffeys
This commit is contained in:
parent
eca2032c06
commit
640b71da48
@ -1461,8 +1461,7 @@ jobject ckAttributeValueToJObject(JNIEnv *env, const CK_ATTRIBUTE_PTR ckpAttribu
|
||||
case CKA_OWNER:
|
||||
case CKA_AC_ISSUER:
|
||||
case CKA_ATTR_TYPES:
|
||||
case CKA_ECDSA_PARAMS:
|
||||
/* CKA_EC_PARAMS is the same, these two are equivalent */
|
||||
case CKA_EC_PARAMS:
|
||||
case CKA_EC_POINT:
|
||||
case CKA_PRIVATE_EXPONENT:
|
||||
case CKA_PRIME_1:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
*/
|
||||
|
||||
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
|
||||
@ -56,69 +56,78 @@
|
||||
|
||||
#ifdef P11_ENABLE_GETNATIVEKEYINFO
|
||||
|
||||
#define CK_ATTRIBUTES_TEMPLATE_LENGTH (CK_ULONG)61U
|
||||
#define CK_ATTRIBUTES_TEMPLATE_LENGTH (CK_ULONG)60U
|
||||
|
||||
// Group attributes based on their value types; put attributes whose values
|
||||
// requiring address alignments, e.g. CK_ULONG, first
|
||||
static CK_ATTRIBUTE ckpAttributesTemplate[CK_ATTRIBUTES_TEMPLATE_LENGTH] = {
|
||||
{CKA_CLASS, 0, 0},
|
||||
{CKA_TOKEN, 0, 0},
|
||||
{CKA_PRIVATE, 0, 0},
|
||||
{CKA_LABEL, 0, 0},
|
||||
{CKA_APPLICATION, 0, 0},
|
||||
{CKA_VALUE, 0, 0},
|
||||
{CKA_OBJECT_ID, 0, 0},
|
||||
// CK_ULONG
|
||||
{CKA_CERTIFICATE_TYPE, 0, 0},
|
||||
{CKA_ISSUER, 0, 0},
|
||||
{CKA_SERIAL_NUMBER, 0, 0},
|
||||
{CKA_AC_ISSUER, 0, 0},
|
||||
{CKA_OWNER, 0, 0},
|
||||
{CKA_ATTR_TYPES, 0, 0},
|
||||
{CKA_TRUSTED, 0, 0},
|
||||
{CKA_CLASS, 0, 0},
|
||||
{CKA_HW_FEATURE_TYPE, 0, 0},
|
||||
{CKA_KEY_GEN_MECHANISM, 0, 0},
|
||||
{CKA_KEY_TYPE, 0, 0},
|
||||
{CKA_SUBJECT, 0, 0},
|
||||
{CKA_ID, 0, 0},
|
||||
{CKA_SENSITIVE, 0, 0},
|
||||
{CKA_ENCRYPT, 0, 0},
|
||||
{CKA_DECRYPT, 0, 0},
|
||||
{CKA_WRAP, 0, 0},
|
||||
{CKA_UNWRAP, 0, 0},
|
||||
{CKA_SIGN, 0, 0},
|
||||
{CKA_SIGN_RECOVER, 0, 0},
|
||||
{CKA_VERIFY, 0, 0},
|
||||
{CKA_VERIFY_RECOVER, 0, 0},
|
||||
{CKA_DERIVE, 0, 0},
|
||||
{CKA_START_DATE, 0, 0},
|
||||
{CKA_END_DATE, 0, 0},
|
||||
{CKA_MODULUS, 0, 0},
|
||||
{CKA_MODULUS_BITS, 0, 0},
|
||||
{CKA_PUBLIC_EXPONENT, 0, 0},
|
||||
{CKA_PRIVATE_EXPONENT, 0, 0},
|
||||
{CKA_PRIME_1, 0, 0},
|
||||
{CKA_PRIME_2, 0, 0},
|
||||
{CKA_EXPONENT_1, 0, 0},
|
||||
{CKA_EXPONENT_2, 0, 0},
|
||||
{CKA_COEFFICIENT, 0, 0},
|
||||
{CKA_PRIME, 0, 0},
|
||||
{CKA_SUBPRIME, 0, 0},
|
||||
{CKA_BASE, 0, 0},
|
||||
{CKA_PRIME_BITS, 0, 0},
|
||||
{CKA_SUB_PRIME_BITS, 0, 0},
|
||||
{CKA_VALUE_BITS, 0, 0},
|
||||
{CKA_VALUE_LEN, 0, 0},
|
||||
{CKA_EXTRACTABLE, 0, 0},
|
||||
{CKA_LOCAL, 0, 0},
|
||||
{CKA_NEVER_EXTRACTABLE, 0, 0},
|
||||
// CK_BBOOL
|
||||
{CKA_ALWAYS_SENSITIVE, 0, 0},
|
||||
{CKA_KEY_GEN_MECHANISM, 0, 0},
|
||||
{CKA_DECRYPT, 0, 0},
|
||||
{CKA_DERIVE, 0, 0},
|
||||
{CKA_ENCRYPT, 0, 0},
|
||||
{CKA_EXTRACTABLE, 0, 0},
|
||||
{CKA_HAS_RESET, 0, 0},
|
||||
{CKA_LOCAL, 0, 0},
|
||||
{CKA_MODIFIABLE, 0, 0},
|
||||
{CKA_ECDSA_PARAMS, 0, 0},
|
||||
{CKA_NEVER_EXTRACTABLE, 0, 0},
|
||||
{CKA_PRIVATE, 0, 0},
|
||||
{CKA_RESET_ON_INIT, 0, 0},
|
||||
{CKA_SENSITIVE, 0, 0},
|
||||
{CKA_SIGN, 0, 0},
|
||||
{CKA_SIGN_RECOVER, 0, 0},
|
||||
{CKA_TOKEN, 0, 0},
|
||||
{CKA_TRUSTED, 0, 0},
|
||||
{CKA_UNWRAP, 0, 0},
|
||||
{CKA_VERIFY, 0, 0},
|
||||
{CKA_VERIFY_RECOVER, 0, 0},
|
||||
{CKA_WRAP, 0, 0},
|
||||
// PTR: byte[]
|
||||
{CKA_AC_ISSUER, 0, 0},
|
||||
{CKA_ATTR_TYPES, 0, 0},
|
||||
{CKA_BASE, 0, 0},
|
||||
{CKA_COEFFICIENT, 0, 0},
|
||||
{CKA_EC_PARAMS, 0, 0},
|
||||
{CKA_EC_POINT, 0, 0},
|
||||
{CKA_EXPONENT_1, 0, 0},
|
||||
{CKA_EXPONENT_2, 0, 0},
|
||||
{CKA_ID, 0, 0},
|
||||
{CKA_ISSUER, 0, 0},
|
||||
{CKA_MODULUS, 0, 0},
|
||||
{CKA_OBJECT_ID, 0, 0},
|
||||
{CKA_OWNER, 0, 0},
|
||||
{CKA_PRIME, 0, 0},
|
||||
{CKA_PRIME_1, 0, 0},
|
||||
{CKA_PRIME_2, 0, 0},
|
||||
{CKA_PRIVATE_EXPONENT, 0, 0},
|
||||
{CKA_PUBLIC_EXPONENT, 0, 0},
|
||||
{CKA_SERIAL_NUMBER, 0, 0},
|
||||
{CKA_SUBJECT, 0, 0},
|
||||
{CKA_SUBPRIME, 0, 0},
|
||||
{CKA_VALUE, 0, 0},
|
||||
// PTR: CK_UTF8CHAR[]
|
||||
{CKA_APPLICATION, 0, 0},
|
||||
{CKA_LABEL, 0, 0},
|
||||
// PTR: CK_DATE
|
||||
{CKA_START_DATE, 0, 0},
|
||||
{CKA_END_DATE, 0, 0},
|
||||
// deprecated
|
||||
{CKA_SECONDARY_AUTH, 0, 0},
|
||||
{CKA_AUTH_PIN_FLAGS, 0, 0},
|
||||
{CKA_HW_FEATURE_TYPE, 0, 0},
|
||||
{CKA_RESET_ON_INIT, 0, 0},
|
||||
{CKA_HAS_RESET, 0, 0},
|
||||
// misc
|
||||
{CKA_VENDOR_DEFINED, 0, 0},
|
||||
// keep this at the end to match the impl in getNativeKeyInfo(...)
|
||||
{CKA_NETSCAPE_DB, 0, 0},
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user