17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*034448feSmcpowers * Common Development and Distribution License (the "License"). 6*034448feSmcpowers * You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate * 87c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate * and limitations under the License. 127c478bd9Sstevel@tonic-gate * 137c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate * 197c478bd9Sstevel@tonic-gate * CDDL HEADER END 207c478bd9Sstevel@tonic-gate */ 217c478bd9Sstevel@tonic-gate /* 22*034448feSmcpowers * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 237c478bd9Sstevel@tonic-gate * Use is subject to license terms. 247c478bd9Sstevel@tonic-gate */ 257c478bd9Sstevel@tonic-gate 267c478bd9Sstevel@tonic-gate #ifndef _META_ATTRMASTERS_H 277c478bd9Sstevel@tonic-gate #define _META_ATTRMASTERS_H 287c478bd9Sstevel@tonic-gate 297c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 307c478bd9Sstevel@tonic-gate 317c478bd9Sstevel@tonic-gate #ifdef __cplusplus 327c478bd9Sstevel@tonic-gate extern "C" { 337c478bd9Sstevel@tonic-gate #endif 347c478bd9Sstevel@tonic-gate 357c478bd9Sstevel@tonic-gate /* 367c478bd9Sstevel@tonic-gate * Master object templates 377c478bd9Sstevel@tonic-gate * 387c478bd9Sstevel@tonic-gate * [This file should only be included by a single source file. This is a 397c478bd9Sstevel@tonic-gate * non-traditional header file in that it simply contains a bunch of large, 407c478bd9Sstevel@tonic-gate * preinitialized static const structures. They're stored here to keep them 417c478bd9Sstevel@tonic-gate * "out of the way."] 427c478bd9Sstevel@tonic-gate * 437c478bd9Sstevel@tonic-gate * In PKCS#11, each object is well-defined... Each object type has an exact 447c478bd9Sstevel@tonic-gate * set of attributes, and each attribute always has some value. Some 457c478bd9Sstevel@tonic-gate * attribute values must be specificed when the object is created, others 467c478bd9Sstevel@tonic-gate * are optional (ie, a default value exisits). Thus, the template an 477c478bd9Sstevel@tonic-gate * application provides when creating a new object may be a subset of the 487c478bd9Sstevel@tonic-gate * allowed attributes. The "master" templates presented here, however, 497c478bd9Sstevel@tonic-gate * are complete. 507c478bd9Sstevel@tonic-gate */ 517c478bd9Sstevel@tonic-gate 527c478bd9Sstevel@tonic-gate 537c478bd9Sstevel@tonic-gate /* 547c478bd9Sstevel@tonic-gate * Aliases for some field values in generic_attr_t, so that the initialization 557c478bd9Sstevel@tonic-gate * below isn't just a confusing mess of B_TRUE and B_FALSE. Lint 567c478bd9Sstevel@tonic-gate * complaints about using "!Foo" in const initializers, 577c478bd9Sstevel@tonic-gate * so we #define each value. 587c478bd9Sstevel@tonic-gate */ 597c478bd9Sstevel@tonic-gate 607c478bd9Sstevel@tonic-gate #define unused 0 617c478bd9Sstevel@tonic-gate #define Mallocd B_TRUE 627c478bd9Sstevel@tonic-gate #define Clone B_TRUE 637c478bd9Sstevel@tonic-gate #define EmptyValue B_TRUE 647c478bd9Sstevel@tonic-gate #define NotMallocd B_FALSE 657c478bd9Sstevel@tonic-gate #define NotClone B_FALSE 667c478bd9Sstevel@tonic-gate #define NotEmptyValue B_FALSE 677c478bd9Sstevel@tonic-gate #define EMPTYDATE ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' 687c478bd9Sstevel@tonic-gate #define EMPTY '\0' 697c478bd9Sstevel@tonic-gate 707c478bd9Sstevel@tonic-gate /* 717c478bd9Sstevel@tonic-gate * A note regarding CKA_CLASS and sub-type (eg CKA_KEY_TYPE) 727c478bd9Sstevel@tonic-gate * 737c478bd9Sstevel@tonic-gate * These two attributes have been moved to the top of the master template 747c478bd9Sstevel@tonic-gate * definitions. All the metaslot code assumes that CKA_CLASS resides in index=0, 757c478bd9Sstevel@tonic-gate * and the sub-type resides in index=1. 767c478bd9Sstevel@tonic-gate */ 777c478bd9Sstevel@tonic-gate 787c478bd9Sstevel@tonic-gate 797c478bd9Sstevel@tonic-gate /* 807c478bd9Sstevel@tonic-gate * Common storage object attributes, Table 19 (p81) of PKCS#11 2.11r1 spec. 817c478bd9Sstevel@tonic-gate */ 827c478bd9Sstevel@tonic-gate #define COMMON_STORAGE_ATTRIBUTES \ 837c478bd9Sstevel@tonic-gate { { CKA_TOKEN, NULL, sizeof (CK_BBOOL) }, \ 84*034448feSmcpowers NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 857c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 867c478bd9Sstevel@tonic-gate { { CKA_PRIVATE, NULL, sizeof (CK_BBOOL) }, \ 87*034448feSmcpowers NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 887c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 897c478bd9Sstevel@tonic-gate { { CKA_MODIFIABLE, NULL, sizeof (CK_BBOOL) }, \ 907c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 917c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 927c478bd9Sstevel@tonic-gate { { CKA_LABEL, NULL, 0 }, \ 937c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 947c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 957c478bd9Sstevel@tonic-gate 967c478bd9Sstevel@tonic-gate /* 977c478bd9Sstevel@tonic-gate * Common certificate attributes, Table 21 (p83) of PKCS#11 2.11r1 spec. 987c478bd9Sstevel@tonic-gate * (CKA_CERTIFICATE_TYPE has been moved, to place at top of template) 997c478bd9Sstevel@tonic-gate * 1007c478bd9Sstevel@tonic-gate */ 1017c478bd9Sstevel@tonic-gate #define COMMON_CERTIFICATE_ATTRIBUTES \ 1027c478bd9Sstevel@tonic-gate { { CKA_TRUSTED, NULL, sizeof (CK_BBOOL) }, \ 1037c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 1047c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } } 1057c478bd9Sstevel@tonic-gate 1067c478bd9Sstevel@tonic-gate /* 1077c478bd9Sstevel@tonic-gate * Common key attributes, Table 25 (p89) of PKCS#11 2.11r1 spec. 1087c478bd9Sstevel@tonic-gate * (CKA_KEY_TYPE has been moved, to place at top of template) 1097c478bd9Sstevel@tonic-gate * 1107c478bd9Sstevel@tonic-gate */ 1117c478bd9Sstevel@tonic-gate #define COMMON_KEY_ATTRIBUTES \ 1127c478bd9Sstevel@tonic-gate { { CKA_ID, NULL, 0 }, \ 1137c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 1147c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, \ 1157c478bd9Sstevel@tonic-gate { { CKA_START_DATE, NULL, sizeof (CK_DATE) }, \ 1167c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 1177c478bd9Sstevel@tonic-gate unused, unused, { EMPTYDATE } }, \ 1187c478bd9Sstevel@tonic-gate { { CKA_END_DATE, NULL, sizeof (CK_DATE) }, \ 1197c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 1207c478bd9Sstevel@tonic-gate unused, unused, { EMPTYDATE } }, \ 1217c478bd9Sstevel@tonic-gate { { CKA_DERIVE, NULL, sizeof (CK_BBOOL) }, \ 1227c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1237c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 1247c478bd9Sstevel@tonic-gate { { CKA_LOCAL, NULL, sizeof (CK_BBOOL) }, \ 1257c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 1267c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 1277c478bd9Sstevel@tonic-gate { { CKA_KEY_GEN_MECHANISM, NULL, sizeof (CK_MECHANISM_TYPE) }, \ 1287c478bd9Sstevel@tonic-gate NotMallocd, NotClone, EmptyValue, B_FALSE, \ 1297c478bd9Sstevel@tonic-gate unused, CK_UNAVAILABLE_INFORMATION, { unused } } 1307c478bd9Sstevel@tonic-gate 1317c478bd9Sstevel@tonic-gate /* 1327c478bd9Sstevel@tonic-gate * Common public-key attributes, Table 26 (p90) of PKCS#11 2.11r1 spec. 1337c478bd9Sstevel@tonic-gate * 1347c478bd9Sstevel@tonic-gate * CKA_SUBJECT has the PKCS#11-specified default. The object-usage attributes 1357c478bd9Sstevel@tonic-gate * are token-specific defaults. 1367c478bd9Sstevel@tonic-gate * 1377c478bd9Sstevel@tonic-gate */ 1387c478bd9Sstevel@tonic-gate #define COMMON_PUBKEY_ATTRIBUTES \ 1397c478bd9Sstevel@tonic-gate { { CKA_SUBJECT, NULL, 0 }, \ 1407c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 1417c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, \ 1427c478bd9Sstevel@tonic-gate { { CKA_ENCRYPT, NULL, sizeof (CK_BBOOL) }, \ 1437c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1447c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1457c478bd9Sstevel@tonic-gate { { CKA_VERIFY, NULL, sizeof (CK_BBOOL) }, \ 1467c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1477c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1487c478bd9Sstevel@tonic-gate { { CKA_VERIFY_RECOVER, NULL, sizeof (CK_BBOOL) }, \ 1497c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1507c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1517c478bd9Sstevel@tonic-gate { { CKA_WRAP, NULL, sizeof (CK_BBOOL) }, \ 1527c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1537c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1547c478bd9Sstevel@tonic-gate { { CKA_TRUSTED, NULL, sizeof (CK_BBOOL) }, \ 1557c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 1567c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } } 1577c478bd9Sstevel@tonic-gate 1587c478bd9Sstevel@tonic-gate /* 1597c478bd9Sstevel@tonic-gate * Common private-key attributes, Table 34 (p97) of PKCS#11 2.11r1 spec. 1607c478bd9Sstevel@tonic-gate */ 1617c478bd9Sstevel@tonic-gate #define COMMON_PRIVKEY_ATTRIBUTES \ 1627c478bd9Sstevel@tonic-gate { { CKA_SUBJECT, NULL, 0 }, \ 1637c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 1647c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, \ 1657c478bd9Sstevel@tonic-gate { { CKA_SENSITIVE, NULL, sizeof (CK_BBOOL) }, \ 1667c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1677c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 1687c478bd9Sstevel@tonic-gate { { CKA_SECONDARY_AUTH, NULL, sizeof (CK_BBOOL) }, \ 1697c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, \ 1707c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 1717c478bd9Sstevel@tonic-gate { { CKA_DECRYPT, NULL, sizeof (CK_BBOOL) }, \ 1727c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1737c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1747c478bd9Sstevel@tonic-gate { { CKA_SIGN, NULL, sizeof (CK_BBOOL) }, \ 1757c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1767c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1777c478bd9Sstevel@tonic-gate { { CKA_SIGN_RECOVER, NULL, sizeof (CK_BBOOL) }, \ 1787c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1797c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1807c478bd9Sstevel@tonic-gate { { CKA_UNWRAP, NULL, sizeof (CK_BBOOL) }, \ 1817c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1827c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1837c478bd9Sstevel@tonic-gate { { CKA_EXTRACTABLE, NULL, sizeof (CK_BBOOL) }, \ 1847c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 1857c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 1867c478bd9Sstevel@tonic-gate { { CKA_ALWAYS_SENSITIVE, NULL, sizeof (CK_BBOOL) }, \ 1877c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 1887c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 1897c478bd9Sstevel@tonic-gate { { CKA_NEVER_EXTRACTABLE, NULL, sizeof (CK_BBOOL) }, \ 1907c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 1917c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } } 1927c478bd9Sstevel@tonic-gate 1937c478bd9Sstevel@tonic-gate 1947c478bd9Sstevel@tonic-gate /* 1957c478bd9Sstevel@tonic-gate * Common secret-key attributes, Table 42 (p108) of PKCS#11 2.11r1 spec. 1967c478bd9Sstevel@tonic-gate */ 1977c478bd9Sstevel@tonic-gate #define COMMON_SECKEY_ATTRIBUTES \ 1987c478bd9Sstevel@tonic-gate { { CKA_SENSITIVE, NULL, sizeof (CK_BBOOL) }, \ 1997c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2007c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 2017c478bd9Sstevel@tonic-gate { { CKA_ENCRYPT, NULL, sizeof (CK_BBOOL) }, \ 2027c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2037c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2047c478bd9Sstevel@tonic-gate { { CKA_DECRYPT, NULL, sizeof (CK_BBOOL) }, \ 2057c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2067c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2077c478bd9Sstevel@tonic-gate { { CKA_SIGN, NULL, sizeof (CK_BBOOL) }, \ 2087c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2097c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2107c478bd9Sstevel@tonic-gate { { CKA_VERIFY, NULL, sizeof (CK_BBOOL) }, \ 2117c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2127c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2137c478bd9Sstevel@tonic-gate { { CKA_WRAP, NULL, sizeof (CK_BBOOL) }, \ 2147c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2157c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2167c478bd9Sstevel@tonic-gate { { CKA_UNWRAP, NULL, sizeof (CK_BBOOL) }, \ 2177c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2187c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2197c478bd9Sstevel@tonic-gate { { CKA_EXTRACTABLE, NULL, sizeof (CK_BBOOL) }, \ 2207c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2217c478bd9Sstevel@tonic-gate CK_TRUE, unused, { unused } }, \ 2227c478bd9Sstevel@tonic-gate { { CKA_ALWAYS_SENSITIVE, NULL, sizeof (CK_BBOOL) }, \ 2237c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 2247c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, \ 2257c478bd9Sstevel@tonic-gate { { CKA_NEVER_EXTRACTABLE, NULL, sizeof (CK_BBOOL) }, \ 2267c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, \ 2277c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } } 2287c478bd9Sstevel@tonic-gate 2297c478bd9Sstevel@tonic-gate /* 2307c478bd9Sstevel@tonic-gate * Common domain-paramaters attributes, Table 60 (p123) of PKCS#11 2.11r1 spec. 2317c478bd9Sstevel@tonic-gate * (CKA_KEY_TYPE has been removed, to place elsewhere) 2327c478bd9Sstevel@tonic-gate */ 2337c478bd9Sstevel@tonic-gate #define COMMON_DOMAIN_ATTRIBUTES \ 2347c478bd9Sstevel@tonic-gate { { CKA_LOCAL, NULL, sizeof (CK_BBOOL) }, \ 2357c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, \ 2367c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } } 2377c478bd9Sstevel@tonic-gate 2387c478bd9Sstevel@tonic-gate 2397c478bd9Sstevel@tonic-gate /* ========================= HW Objects ========================= */ 2407c478bd9Sstevel@tonic-gate 2417c478bd9Sstevel@tonic-gate 2427c478bd9Sstevel@tonic-gate /* 2437c478bd9Sstevel@tonic-gate * Master template for: CKO_HW_FEATURE + CKH_CLOCK 2447c478bd9Sstevel@tonic-gate */ 2457c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_HW_CLOCK[] = 2467c478bd9Sstevel@tonic-gate { 2477c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 2487c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2497c478bd9Sstevel@tonic-gate unused, CKO_HW_FEATURE, { unused } }, 2507c478bd9Sstevel@tonic-gate { { CKA_HW_FEATURE_TYPE, NULL, sizeof (CK_HW_FEATURE_TYPE) }, 2517c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2527c478bd9Sstevel@tonic-gate unused, CKH_CLOCK, { unused } }, 2537c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 16 }, 2547c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2557c478bd9Sstevel@tonic-gate unused, unused, { EMPTYDATE, EMPTYDATE } } 2567c478bd9Sstevel@tonic-gate }; 2577c478bd9Sstevel@tonic-gate 2587c478bd9Sstevel@tonic-gate 2597c478bd9Sstevel@tonic-gate /* 2607c478bd9Sstevel@tonic-gate * Master template for: CKO_HW_FEATURE + CKH_MONOTONIC_COUNTER 2617c478bd9Sstevel@tonic-gate * 2627c478bd9Sstevel@tonic-gate * NOTE: no sub-type for this class! 2637c478bd9Sstevel@tonic-gate */ 2647c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_HW_MONOTONIC[] = 2657c478bd9Sstevel@tonic-gate { 2667c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 2677c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2687c478bd9Sstevel@tonic-gate unused, CKO_HW_FEATURE, { unused } }, 2697c478bd9Sstevel@tonic-gate { { CKA_HW_FEATURE_TYPE, NULL, sizeof (CK_HW_FEATURE_TYPE) }, 2707c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2717c478bd9Sstevel@tonic-gate unused, CKH_MONOTONIC_COUNTER, { unused } }, 2727c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 2737c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2747c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 2757c478bd9Sstevel@tonic-gate { { CKA_RESET_ON_INIT, NULL, sizeof (CK_BBOOL) }, 2767c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2777c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } }, 2787c478bd9Sstevel@tonic-gate { { CKA_HAS_RESET, NULL, sizeof (CK_BBOOL) }, 2797c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2807c478bd9Sstevel@tonic-gate CK_FALSE, unused, { unused } } 2817c478bd9Sstevel@tonic-gate }; 2827c478bd9Sstevel@tonic-gate 2837c478bd9Sstevel@tonic-gate 2847c478bd9Sstevel@tonic-gate /* ========================= Data Objects ========================= */ 2857c478bd9Sstevel@tonic-gate 2867c478bd9Sstevel@tonic-gate 2877c478bd9Sstevel@tonic-gate /* 2887c478bd9Sstevel@tonic-gate * Master template for CKO_DATA + (no subtypes for this class) 2897c478bd9Sstevel@tonic-gate * 2907c478bd9Sstevel@tonic-gate * Defaults are according to PKCS#11. 2917c478bd9Sstevel@tonic-gate * 2927c478bd9Sstevel@tonic-gate * NOTE: no sub-type for this class! 2937c478bd9Sstevel@tonic-gate */ 2947c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_DATA[] = 2957c478bd9Sstevel@tonic-gate { 2967c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 2977c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 2987c478bd9Sstevel@tonic-gate unused, CKO_DATA, { unused } }, 2997c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 3007c478bd9Sstevel@tonic-gate { { CKA_APPLICATION, NULL, 0 }, 3017c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3027c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3037c478bd9Sstevel@tonic-gate { { CKA_OBJECT_ID, NULL, 0 }, 3047c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3057c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3067c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 3077c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3087c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 3097c478bd9Sstevel@tonic-gate }; 3107c478bd9Sstevel@tonic-gate 3117c478bd9Sstevel@tonic-gate 3127c478bd9Sstevel@tonic-gate /* ========================= Certificate Objects ========================= */ 3137c478bd9Sstevel@tonic-gate 3147c478bd9Sstevel@tonic-gate 3157c478bd9Sstevel@tonic-gate /* 3167c478bd9Sstevel@tonic-gate * Master template for CKO_CERTIFICATE + CKC_X_509 3177c478bd9Sstevel@tonic-gate * 3187c478bd9Sstevel@tonic-gate * Defaults are according to PKCS#11. 3197c478bd9Sstevel@tonic-gate */ 3207c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_CERT_X509[] = 3217c478bd9Sstevel@tonic-gate { 3227c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 3237c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3247c478bd9Sstevel@tonic-gate unused, CKO_CERTIFICATE, { unused } }, 3257c478bd9Sstevel@tonic-gate { { CKA_CERTIFICATE_TYPE, NULL, sizeof (CK_CERTIFICATE_TYPE) }, 3267c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3277c478bd9Sstevel@tonic-gate unused, CKC_X_509, { unused } }, 3287c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 3297c478bd9Sstevel@tonic-gate COMMON_CERTIFICATE_ATTRIBUTES, 3307c478bd9Sstevel@tonic-gate { { CKA_SUBJECT, NULL, 0 }, 3317c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3327c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3337c478bd9Sstevel@tonic-gate { { CKA_ID, NULL, 0 }, 3347c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 3357c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3367c478bd9Sstevel@tonic-gate { { CKA_ISSUER, NULL, 0 }, 3377c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 3387c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3397c478bd9Sstevel@tonic-gate { { CKA_SERIAL_NUMBER, NULL, 0 }, 3407c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 3417c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3427c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 3437c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3447c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 3457c478bd9Sstevel@tonic-gate }; 3467c478bd9Sstevel@tonic-gate 3477c478bd9Sstevel@tonic-gate 3487c478bd9Sstevel@tonic-gate /* 3497c478bd9Sstevel@tonic-gate * Master template for CKO_CERTIFICATE + CKC_X_509_ATTR_CERT 3507c478bd9Sstevel@tonic-gate * 3517c478bd9Sstevel@tonic-gate * Defaults are according to PKCS#11. 3527c478bd9Sstevel@tonic-gate */ 3537c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_CERT_X509ATTR[] = 3547c478bd9Sstevel@tonic-gate { 3557c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 3567c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3577c478bd9Sstevel@tonic-gate unused, CKO_CERTIFICATE, { unused } }, 3587c478bd9Sstevel@tonic-gate { { CKA_CERTIFICATE_TYPE, NULL, sizeof (CK_CERTIFICATE_TYPE) }, 3597c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3607c478bd9Sstevel@tonic-gate unused, CKC_X_509_ATTR_CERT, { unused } }, 3617c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 3627c478bd9Sstevel@tonic-gate COMMON_CERTIFICATE_ATTRIBUTES, 3637c478bd9Sstevel@tonic-gate { { CKA_OWNER, NULL, 0 }, 3647c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3657c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3667c478bd9Sstevel@tonic-gate { { CKA_AC_ISSUER, NULL, 0 }, 3677c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 3687c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3697c478bd9Sstevel@tonic-gate { { CKA_SERIAL_NUMBER, NULL, 0 }, 3707c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 3717c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3727c478bd9Sstevel@tonic-gate { { CKA_ATTR_TYPES, NULL, 0 }, 3737c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 3747c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 3757c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 3767c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3777c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 3787c478bd9Sstevel@tonic-gate }; 3797c478bd9Sstevel@tonic-gate 3807c478bd9Sstevel@tonic-gate 3817c478bd9Sstevel@tonic-gate /* ========================= Public Keys ========================= */ 3827c478bd9Sstevel@tonic-gate 3837c478bd9Sstevel@tonic-gate 3847c478bd9Sstevel@tonic-gate /* 3857c478bd9Sstevel@tonic-gate * Master template for CKO_PUBLIC_KEY + CKK_RSA 3867c478bd9Sstevel@tonic-gate */ 3877c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PUBKEY_RSA[] = 3887c478bd9Sstevel@tonic-gate { 3897c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 3907c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3917c478bd9Sstevel@tonic-gate unused, CKO_PUBLIC_KEY, { unused } }, 3927c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 3937c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 3947c478bd9Sstevel@tonic-gate unused, CKK_RSA, { unused } }, 3957c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 3967c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 3977c478bd9Sstevel@tonic-gate COMMON_PUBKEY_ATTRIBUTES, 3987c478bd9Sstevel@tonic-gate { { CKA_MODULUS, NULL, 0 }, 3997c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4007c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4017c478bd9Sstevel@tonic-gate { { CKA_MODULUS_BITS, NULL, sizeof (CK_ULONG)}, 4027c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 4037c478bd9Sstevel@tonic-gate unused, 0, { unused } }, 4047c478bd9Sstevel@tonic-gate { { CKA_PUBLIC_EXPONENT, NULL, 0 }, 4057c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4067c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 4077c478bd9Sstevel@tonic-gate }; 4087c478bd9Sstevel@tonic-gate 4097c478bd9Sstevel@tonic-gate 4107c478bd9Sstevel@tonic-gate /* 4117c478bd9Sstevel@tonic-gate * Master template for CKO_PUBLIC_KEY + CKK_DSA 4127c478bd9Sstevel@tonic-gate * 4137c478bd9Sstevel@tonic-gate */ 4147c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PUBKEY_DSA[] = 4157c478bd9Sstevel@tonic-gate { 4167c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 4177c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4187c478bd9Sstevel@tonic-gate unused, CKO_PUBLIC_KEY, { unused } }, 4197c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 4207c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4217c478bd9Sstevel@tonic-gate unused, CKK_DSA, { unused } }, 4227c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 4237c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 4247c478bd9Sstevel@tonic-gate COMMON_PUBKEY_ATTRIBUTES, 4257c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 4267c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4277c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4287c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 4297c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4307c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4317c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 4327c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4337c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4347c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 4357c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4367c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 4377c478bd9Sstevel@tonic-gate }; 4387c478bd9Sstevel@tonic-gate 4397c478bd9Sstevel@tonic-gate 4407c478bd9Sstevel@tonic-gate /* 4417c478bd9Sstevel@tonic-gate * Master template for CKO_PUBLIC_KEY + CKK_EC 4427c478bd9Sstevel@tonic-gate * 4437c478bd9Sstevel@tonic-gate */ 4447c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PUBKEY_EC[] = 4457c478bd9Sstevel@tonic-gate { 4467c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 4477c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4487c478bd9Sstevel@tonic-gate unused, CKO_PUBLIC_KEY, { unused } }, 4497c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 4507c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4517c478bd9Sstevel@tonic-gate unused, CKK_EC, { unused } }, 4527c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 4537c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 4547c478bd9Sstevel@tonic-gate COMMON_PUBKEY_ATTRIBUTES, 4557c478bd9Sstevel@tonic-gate { { CKA_EC_PARAMS, NULL, 0 }, 4567c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4577c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4587c478bd9Sstevel@tonic-gate { { CKA_EC_POINT, NULL, 0 }, 4597c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4607c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 4617c478bd9Sstevel@tonic-gate }; 4627c478bd9Sstevel@tonic-gate 4637c478bd9Sstevel@tonic-gate 4647c478bd9Sstevel@tonic-gate /* 4657c478bd9Sstevel@tonic-gate * Master template for CKO_PUBLIC_KEY + CKK_DH 4667c478bd9Sstevel@tonic-gate * 4677c478bd9Sstevel@tonic-gate */ 4687c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PUBKEY_DH[] = 4697c478bd9Sstevel@tonic-gate { 4707c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 4717c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4727c478bd9Sstevel@tonic-gate unused, CKO_PUBLIC_KEY, { unused } }, 4737c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 4747c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4757c478bd9Sstevel@tonic-gate unused, CKK_DH, { unused } }, 4767c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 4777c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 4787c478bd9Sstevel@tonic-gate COMMON_PUBKEY_ATTRIBUTES, 4797c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 4807c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4817c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4827c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 4837c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4847c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 4857c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 4867c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4877c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 4887c478bd9Sstevel@tonic-gate }; 4897c478bd9Sstevel@tonic-gate 4907c478bd9Sstevel@tonic-gate 4917c478bd9Sstevel@tonic-gate /* 4927c478bd9Sstevel@tonic-gate * Master template for CKO_PUBLIC_KEY + CKK_X9_42_DH 4937c478bd9Sstevel@tonic-gate * 4947c478bd9Sstevel@tonic-gate */ 4957c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PUBKEY_X942DH[] = 4967c478bd9Sstevel@tonic-gate { 4977c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 4987c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 4997c478bd9Sstevel@tonic-gate unused, CKO_PUBLIC_KEY, { unused } }, 5007c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 5017c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5027c478bd9Sstevel@tonic-gate unused, CKK_X9_42_DH, { unused } }, 5037c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 5047c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 5057c478bd9Sstevel@tonic-gate COMMON_PUBKEY_ATTRIBUTES, 5067c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 5077c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5087c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5097c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 5107c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5117c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5127c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 5137c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5147c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5157c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 5167c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5177c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 5187c478bd9Sstevel@tonic-gate }; 5197c478bd9Sstevel@tonic-gate 5207c478bd9Sstevel@tonic-gate 5217c478bd9Sstevel@tonic-gate /* 5227c478bd9Sstevel@tonic-gate * Master template for CKO_PUBLIC_KEY + CKK_KEA 5237c478bd9Sstevel@tonic-gate * 5247c478bd9Sstevel@tonic-gate */ 5257c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PUBKEY_KEA[] = 5267c478bd9Sstevel@tonic-gate { 5277c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 5287c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5297c478bd9Sstevel@tonic-gate unused, CKO_PUBLIC_KEY, { unused } }, 5307c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 5317c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5327c478bd9Sstevel@tonic-gate unused, CKK_KEA, { unused } }, 5337c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 5347c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 5357c478bd9Sstevel@tonic-gate COMMON_PUBKEY_ATTRIBUTES, 5367c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 5377c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5387c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5397c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 5407c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5417c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5427c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 5437c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5447c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5457c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 5467c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5477c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 5487c478bd9Sstevel@tonic-gate }; 5497c478bd9Sstevel@tonic-gate 5507c478bd9Sstevel@tonic-gate 5517c478bd9Sstevel@tonic-gate /* ========================= Private Keys ========================= */ 5527c478bd9Sstevel@tonic-gate 5537c478bd9Sstevel@tonic-gate 5547c478bd9Sstevel@tonic-gate /* 5557c478bd9Sstevel@tonic-gate * Master template for CKO_PRIVATE_KEY + CKK_RSA 5567c478bd9Sstevel@tonic-gate * 5577c478bd9Sstevel@tonic-gate */ 5587c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PRIVKEY_RSA[] = 5597c478bd9Sstevel@tonic-gate { 5607c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 5617c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5627c478bd9Sstevel@tonic-gate unused, CKO_PRIVATE_KEY, { unused } }, 5637c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 5647c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5657c478bd9Sstevel@tonic-gate unused, CKK_RSA, { unused } }, 5667c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 5677c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 5687c478bd9Sstevel@tonic-gate COMMON_PRIVKEY_ATTRIBUTES, 5697c478bd9Sstevel@tonic-gate { { CKA_MODULUS, NULL, 0 }, 5707c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5717c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5727c478bd9Sstevel@tonic-gate { { CKA_PRIVATE_EXPONENT, NULL, 0 }, 5737c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 5747c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5757c478bd9Sstevel@tonic-gate { { CKA_PUBLIC_EXPONENT, NULL, 0 }, 5767c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 5777c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5787c478bd9Sstevel@tonic-gate { { CKA_PRIME_1, NULL, 0 }, 5797c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 5807c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5817c478bd9Sstevel@tonic-gate { { CKA_PRIME_2, NULL, 0 }, 5827c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 5837c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5847c478bd9Sstevel@tonic-gate { { CKA_EXPONENT_1, NULL, 0 }, 5857c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 5867c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5877c478bd9Sstevel@tonic-gate { { CKA_EXPONENT_2, NULL, 0 }, 5887c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 5897c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 5907c478bd9Sstevel@tonic-gate { { CKA_COEFFICIENT, NULL, 0 }, 5917c478bd9Sstevel@tonic-gate NotMallocd, Clone, EmptyValue, B_FALSE, 5927c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 5937c478bd9Sstevel@tonic-gate }; 5947c478bd9Sstevel@tonic-gate 5957c478bd9Sstevel@tonic-gate 5967c478bd9Sstevel@tonic-gate /* 5977c478bd9Sstevel@tonic-gate * Master template for CKO_PRIVATE_KEY + CKK_DSA 5987c478bd9Sstevel@tonic-gate * 5997c478bd9Sstevel@tonic-gate */ 6007c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PRIVKEY_DSA[] = 6017c478bd9Sstevel@tonic-gate { 6027c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 6037c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6047c478bd9Sstevel@tonic-gate unused, CKO_PRIVATE_KEY, { unused } }, 6057c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 6067c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6077c478bd9Sstevel@tonic-gate unused, CKK_DSA, { unused } }, 6087c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 6097c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 6107c478bd9Sstevel@tonic-gate COMMON_PRIVKEY_ATTRIBUTES, 6117c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 6127c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6137c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6147c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 6157c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6167c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6177c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 6187c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6197c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6207c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 6217c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6227c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 6237c478bd9Sstevel@tonic-gate }; 6247c478bd9Sstevel@tonic-gate 6257c478bd9Sstevel@tonic-gate 6267c478bd9Sstevel@tonic-gate /* 6277c478bd9Sstevel@tonic-gate * Master template for CKO_PRIVATE_KEY + CKK_EC 6287c478bd9Sstevel@tonic-gate * 6297c478bd9Sstevel@tonic-gate */ 6307c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PRIVKEY_EC[] = 6317c478bd9Sstevel@tonic-gate { 6327c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 6337c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6347c478bd9Sstevel@tonic-gate unused, CKO_PRIVATE_KEY, { unused } }, 6357c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 6367c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6377c478bd9Sstevel@tonic-gate unused, CKK_EC, { unused } }, 6387c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 6397c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 6407c478bd9Sstevel@tonic-gate COMMON_PRIVKEY_ATTRIBUTES, 6417c478bd9Sstevel@tonic-gate { { CKA_EC_PARAMS, NULL, 0 }, 6427c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6437c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6447c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 6457c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6467c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 6477c478bd9Sstevel@tonic-gate }; 6487c478bd9Sstevel@tonic-gate 6497c478bd9Sstevel@tonic-gate 6507c478bd9Sstevel@tonic-gate /* 6517c478bd9Sstevel@tonic-gate * Master template for CKO_PRIVATE_KEY + CKK_DH 6527c478bd9Sstevel@tonic-gate */ 6537c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PRIVKEY_DH[] = 6547c478bd9Sstevel@tonic-gate { 6557c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 6567c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6577c478bd9Sstevel@tonic-gate unused, CKO_PRIVATE_KEY, { unused } }, 6587c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 6597c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6607c478bd9Sstevel@tonic-gate unused, CKK_DH, { unused } }, 6617c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 6627c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 6637c478bd9Sstevel@tonic-gate COMMON_PRIVKEY_ATTRIBUTES, 6647c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 6657c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6667c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6677c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 6687c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6697c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6707c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 6717c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6727c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6737c478bd9Sstevel@tonic-gate { { CKA_VALUE_BITS, NULL, sizeof (CK_ULONG) }, 6747c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 6757c478bd9Sstevel@tonic-gate unused, 0, { unused } } 6767c478bd9Sstevel@tonic-gate }; 6777c478bd9Sstevel@tonic-gate 6787c478bd9Sstevel@tonic-gate 6797c478bd9Sstevel@tonic-gate /* 6807c478bd9Sstevel@tonic-gate * Master template for CKO_PRIVATE_KEY + CKK_X9_42_DH 6817c478bd9Sstevel@tonic-gate * 6827c478bd9Sstevel@tonic-gate */ 6837c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PRIVKEY_X942DH[] = 6847c478bd9Sstevel@tonic-gate { 6857c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 6867c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6877c478bd9Sstevel@tonic-gate unused, CKO_PRIVATE_KEY, { unused } }, 6887c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 6897c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6907c478bd9Sstevel@tonic-gate unused, CKK_X9_42_DH, { unused } }, 6917c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 6927c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 6937c478bd9Sstevel@tonic-gate COMMON_PRIVKEY_ATTRIBUTES, 6947c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 6957c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6967c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 6977c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 6987c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 6997c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 7007c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 7017c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7027c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 7037c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 7047c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7057c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 7067c478bd9Sstevel@tonic-gate }; 7077c478bd9Sstevel@tonic-gate 7087c478bd9Sstevel@tonic-gate 7097c478bd9Sstevel@tonic-gate /* 7107c478bd9Sstevel@tonic-gate * Master template for CKO_PRIVATE_KEY + CKK_KEA 7117c478bd9Sstevel@tonic-gate * 7127c478bd9Sstevel@tonic-gate */ 7137c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_PRIVKEY_KEA[] = 7147c478bd9Sstevel@tonic-gate { 7157c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 7167c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7177c478bd9Sstevel@tonic-gate unused, CKO_PRIVATE_KEY, { unused } }, 7187c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 7197c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7207c478bd9Sstevel@tonic-gate unused, CKK_KEA, { unused } }, 7217c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 7227c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 7237c478bd9Sstevel@tonic-gate COMMON_PRIVKEY_ATTRIBUTES, 7247c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 7257c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7267c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 7277c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 7287c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7297c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 7307c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 7317c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7327c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 7337c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 7347c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7357c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 7367c478bd9Sstevel@tonic-gate }; 7377c478bd9Sstevel@tonic-gate 7387c478bd9Sstevel@tonic-gate 7397c478bd9Sstevel@tonic-gate /* ========================= Secret Keys ========================= */ 7407c478bd9Sstevel@tonic-gate 7417c478bd9Sstevel@tonic-gate 7427c478bd9Sstevel@tonic-gate /* 7437c478bd9Sstevel@tonic-gate * Master template for CKO_SECRET_KEY + (fixed-length keytype) 7447c478bd9Sstevel@tonic-gate */ 7457c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_SECKEY[] = 7467c478bd9Sstevel@tonic-gate { 7477c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 7487c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7497c478bd9Sstevel@tonic-gate unused, CKO_SECRET_KEY, { unused } }, 7507c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 7517c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7527c478bd9Sstevel@tonic-gate unused, CKK_GENERIC_SECRET, { unused } }, 7537c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 7547c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 7557c478bd9Sstevel@tonic-gate COMMON_SECKEY_ATTRIBUTES, 7567c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 7577c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7587c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } } 7597c478bd9Sstevel@tonic-gate }; 7607c478bd9Sstevel@tonic-gate 7617c478bd9Sstevel@tonic-gate 7627c478bd9Sstevel@tonic-gate /* 7637c478bd9Sstevel@tonic-gate * Master template for CKO_SECRET_KEY + (variable-length keytype) 7647c478bd9Sstevel@tonic-gate * 7657c478bd9Sstevel@tonic-gate */ 7667c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_SECKEY_WITHLEN[] = 7677c478bd9Sstevel@tonic-gate { 7687c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 7697c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7707c478bd9Sstevel@tonic-gate unused, CKO_SECRET_KEY, { unused } }, 7717c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 7727c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7737c478bd9Sstevel@tonic-gate unused, CKK_GENERIC_SECRET, { unused } }, 7747c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 7757c478bd9Sstevel@tonic-gate COMMON_KEY_ATTRIBUTES, 7767c478bd9Sstevel@tonic-gate COMMON_SECKEY_ATTRIBUTES, 7777c478bd9Sstevel@tonic-gate { { CKA_VALUE, NULL, 0 }, 7787c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7797c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 7807c478bd9Sstevel@tonic-gate { { CKA_VALUE_LEN, NULL, sizeof (CK_ULONG) }, 7817c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 7827c478bd9Sstevel@tonic-gate unused, 0, { unused } } 7837c478bd9Sstevel@tonic-gate }; 7847c478bd9Sstevel@tonic-gate 7857c478bd9Sstevel@tonic-gate 7867c478bd9Sstevel@tonic-gate /* ========================= Domain Parameters ========================= */ 7877c478bd9Sstevel@tonic-gate 7887c478bd9Sstevel@tonic-gate 7897c478bd9Sstevel@tonic-gate /* 7907c478bd9Sstevel@tonic-gate * Master template for CKO_DOMAIN_PARAMETERS + CKK_DSA 7917c478bd9Sstevel@tonic-gate * 7927c478bd9Sstevel@tonic-gate */ 7937c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_DOM_DSA[] = 7947c478bd9Sstevel@tonic-gate { 7957c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 7967c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 7977c478bd9Sstevel@tonic-gate unused, CKO_DOMAIN_PARAMETERS, { unused } }, 7987c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 7997c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8007c478bd9Sstevel@tonic-gate unused, CKK_DSA, { unused } }, 8017c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 8027c478bd9Sstevel@tonic-gate COMMON_DOMAIN_ATTRIBUTES, 8037c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 8047c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8057c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8067c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 8077c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8087c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8097c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 8107c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8117c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8127c478bd9Sstevel@tonic-gate { { CKA_PRIME_BITS, NULL, sizeof (CK_ULONG) }, 8137c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 8147c478bd9Sstevel@tonic-gate unused, 0, { unused } } 8157c478bd9Sstevel@tonic-gate }; 8167c478bd9Sstevel@tonic-gate 8177c478bd9Sstevel@tonic-gate /* 8187c478bd9Sstevel@tonic-gate * Master template for CKO_DOMAIN_PARAMETERS + CKK_DH 8197c478bd9Sstevel@tonic-gate * 8207c478bd9Sstevel@tonic-gate */ 8217c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_DOM_DH[] = 8227c478bd9Sstevel@tonic-gate { 8237c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 8247c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8257c478bd9Sstevel@tonic-gate unused, CKO_DOMAIN_PARAMETERS, { unused } }, 8267c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 8277c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8287c478bd9Sstevel@tonic-gate unused, CKK_DH, { unused } }, 8297c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 8307c478bd9Sstevel@tonic-gate COMMON_DOMAIN_ATTRIBUTES, 8317c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 8327c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8337c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8347c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 8357c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8367c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8377c478bd9Sstevel@tonic-gate { { CKA_PRIME_BITS, NULL, sizeof (CK_ULONG) }, 8387c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 8397c478bd9Sstevel@tonic-gate unused, 0, { unused } } 8407c478bd9Sstevel@tonic-gate }; 8417c478bd9Sstevel@tonic-gate 8427c478bd9Sstevel@tonic-gate /* 8437c478bd9Sstevel@tonic-gate * Master template for CKO_DOMAIN_PARAMETERS + CKK_X9_42_DH 8447c478bd9Sstevel@tonic-gate * 8457c478bd9Sstevel@tonic-gate */ 8467c478bd9Sstevel@tonic-gate static const generic_attr_t OBJ_DOM_X942DH[] = 8477c478bd9Sstevel@tonic-gate { 8487c478bd9Sstevel@tonic-gate { { CKA_CLASS, NULL, sizeof (CK_OBJECT_CLASS) }, 8497c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8507c478bd9Sstevel@tonic-gate unused, CKO_DOMAIN_PARAMETERS, { unused } }, 8517c478bd9Sstevel@tonic-gate { { CKA_KEY_TYPE, NULL, sizeof (CK_KEY_TYPE) }, 8527c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8537c478bd9Sstevel@tonic-gate unused, CKK_X9_42_DH, { unused } }, 8547c478bd9Sstevel@tonic-gate COMMON_STORAGE_ATTRIBUTES, 8557c478bd9Sstevel@tonic-gate COMMON_DOMAIN_ATTRIBUTES, 8567c478bd9Sstevel@tonic-gate { { CKA_PRIME, NULL, 0 }, 8577c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8587c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8597c478bd9Sstevel@tonic-gate { { CKA_BASE, NULL, 0 }, 8607c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8617c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8627c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME, NULL, 0 }, 8637c478bd9Sstevel@tonic-gate NotMallocd, Clone, NotEmptyValue, B_FALSE, 8647c478bd9Sstevel@tonic-gate unused, unused, { EMPTY } }, 8657c478bd9Sstevel@tonic-gate { { CKA_PRIME_BITS, NULL, sizeof (CK_ULONG) }, 8667c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 8677c478bd9Sstevel@tonic-gate unused, 0, { unused } }, 8687c478bd9Sstevel@tonic-gate { { CKA_SUBPRIME_BITS, NULL, sizeof (CK_ULONG) }, 8697c478bd9Sstevel@tonic-gate NotMallocd, NotClone, NotEmptyValue, B_FALSE, 8707c478bd9Sstevel@tonic-gate unused, 0, { unused } } 8717c478bd9Sstevel@tonic-gate }; 8727c478bd9Sstevel@tonic-gate 8737c478bd9Sstevel@tonic-gate #ifdef __cplusplus 8747c478bd9Sstevel@tonic-gate } 8757c478bd9Sstevel@tonic-gate #endif 8767c478bd9Sstevel@tonic-gate 8777c478bd9Sstevel@tonic-gate #endif /* _META_ATTRMASTERS_H */ 878