2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * Master object templates 2N/A * [This file should only be included by a single source file. This is a 2N/A * non-traditional header file in that it simply contains a bunch of large, 2N/A * preinitialized static const structures. They're stored here to keep them 2N/A * "out of the way."] 2N/A * In PKCS#11, each object is well-defined... Each object type has an exact 2N/A * set of attributes, and each attribute always has some value. Some 2N/A * attribute values must be specificed when the object is created, others 2N/A * are optional (ie, a default value exists). Thus, the template an 2N/A * application provides when creating a new object may be a subset of the 2N/A * allowed attributes. The "master" templates presented here, however, 2N/A * Aliases for some field values in generic_attr_t, so that the initialization 2N/A * below isn't just a confusing mess of B_TRUE and B_FALSE. Lint 2N/A * complaints about using "!Foo" in const initializers, 2N/A * so we #define each value. 2N/A * A note regarding CKA_CLASS and sub-type (eg CKA_KEY_TYPE) 2N/A * These two attributes have been moved to the top of the master template 2N/A * definitions. All the metaslot code assumes that CKA_CLASS resides in index=0, 2N/A * and the sub-type resides in index=1. 2N/A * Common storage object attributes, Table 19 (p81) of PKCS#11 2.11r1 spec. 2N/A * Common certificate attributes, Table 21 (p83) of PKCS#11 2.11r1 spec. 2N/A * (CKA_CERTIFICATE_TYPE has been moved, to place at top of template) 2N/A * Common key attributes, Table 25 (p89) of PKCS#11 2.11r1 spec. 2N/A * (CKA_KEY_TYPE has been moved, to place at top of template) 2N/A * Common public-key attributes, Table 26 (p90) of PKCS#11 2.11r1 spec. 2N/A * CKA_SUBJECT has the PKCS#11-specified default. The object-usage attributes 2N/A * are token-specific defaults. 2N/A * Common private-key attributes, Table 34 (p97) of PKCS#11 2.11r1 spec. 2N/A * Common secret-key attributes, Table 42 (p108) of PKCS#11 2.11r1 spec. 2N/A * Common domain-parameters attributes, Table 60 (p123) of PKCS#11 2.11r1 spec. 2N/A * (CKA_KEY_TYPE has been removed, to place elsewhere) 2N/A/* ========================= HW Objects ========================= */ 2N/A * Master template for: CKO_HW_FEATURE + CKH_CLOCK 2N/A * Master template for: CKO_HW_FEATURE + CKH_MONOTONIC_COUNTER 2N/A * NOTE: no sub-type for this class! 2N/A/* ========================= Data Objects ========================= */ 2N/A * Master template for CKO_DATA + (no subtypes for this class) 2N/A * Defaults are according to PKCS#11. 2N/A * NOTE: no sub-type for this class! 2N/A/* ========================= Certificate Objects ========================= */ 2N/A * Master template for CKO_CERTIFICATE + CKC_X_509 2N/A * Defaults are according to PKCS#11. 2N/A * Master template for CKO_CERTIFICATE + CKC_X_509_ATTR_CERT 2N/A * Defaults are according to PKCS#11. 2N/A/* ========================= Public Keys ========================= */ 2N/A * Master template for CKO_PUBLIC_KEY + CKK_RSA 2N/A * Master template for CKO_PUBLIC_KEY + CKK_DSA 2N/A * Master template for CKO_PUBLIC_KEY + CKK_EC 2N/A * Master template for CKO_PUBLIC_KEY + CKK_DH 2N/A * Master template for CKO_PUBLIC_KEY + CKK_X9_42_DH 2N/A * Master template for CKO_PUBLIC_KEY + CKK_KEA 2N/A/* ========================= Private Keys ========================= */ 2N/A * Master template for CKO_PRIVATE_KEY + CKK_RSA 2N/A * Master template for CKO_PRIVATE_KEY + CKK_DSA 2N/A * Master template for CKO_PRIVATE_KEY + CKK_EC 2N/A * Master template for CKO_PRIVATE_KEY + CKK_DH 2N/A * Master template for CKO_PRIVATE_KEY + CKK_X9_42_DH 2N/A * Master template for CKO_PRIVATE_KEY + CKK_KEA 2N/A/* ========================= Secret Keys ========================= */ 2N/A * Master template for CKO_SECRET_KEY + (fixed-length keytype) 2N/A * Master template for CKO_SECRET_KEY + (variable-length keytype) 2N/A/* ========================= Domain Parameters ========================= */ 2N/A * Master template for CKO_DOMAIN_PARAMETERS + CKK_DSA 2N/A * Master template for CKO_DOMAIN_PARAMETERS + CKK_DH 2N/A * Master template for CKO_DOMAIN_PARAMETERS + CKK_X9_42_DH 2N/A#
endif /* _META_ATTRMASTERS_H */