cssmtype.h

来自「Next BIOS Source code : Extensible Firmw」· C头文件 代码 · 共 1,558 行 · 第 1/5 页

H
1,558
字号
    CSSM_DL_UNKNOWN = 0,
    CSSM_DL_CUSTOM = 1,
    CSSM_DL_LDAP = 2,
    CSSM_DL_ODBC = 3,
    CSSM_DL_PKCS11 = 4,
    CSSM_DL_FFS = 5,          /* flat file system  or fast file system */
    CSSM_DL_MEMORY = 6, 
    CSSM_DL_REMOTEDIR = 7
} CSSM_DLTYPE, *CSSM_DLTYPE_PTR;

/*  CSSM_DL_PKCS11_ATTRIBUTES  */
typedef struct cssm_dl_pkcs11_attributes {
    uint32 DeviceAccessFlags;
} CSSM_DL_PKCS11_ATTRIBUTES, *CSSM_DL_PKCS11_ATTRIBUTES_PTR; 

typedef void *CSSM_DL_CUSTOM_ATTRIBUTES;
typedef void *CSSM_DL_LDAP_ATTRIBUTES;
typedef void *CSSM_DL_ODBC_ATTRIBUTES;
typedef void *CSSM_DL_FFS_ATTRIBUTES;

/*
    CSSM_DL_WRAPPEDPRODUCTINFO
*/

typedef struct cssm_dl_wrappedproductinfo {
    CSSM_VERSION StandardVersion;     /* Version of standard this product conforms to */
    CSSM_STRING StandardDescription;  /* Description of standard this product conforms to */
    CSSM_VERSION ProductVersion;      /* Version of wrapped product/library */
    CSSM_STRING ProductDescription;   /* Description of wrapped product/library */
    CSSM_STRING ProductVendor;        /* Vendor of wrapped product/library */
    uint32 ProductFlags;              /* ProductFlags */
	CSSM_NET_PROTOCOL NetworkProtocol;/* The network protocol supported by a remote storage service */

} CSSM_DL_WRAPPEDPRODUCTINFO, *CSSM_DL_WRAPPEDPRODUCTINFO_PTR;

typedef struct cssm_dlsubservice {
    uint32 SubServiceId;
    CSSM_STRING Description;          /* Description of this sub service */
    CSSM_DLTYPE Type;
    union cssm_dlsubservice_attributes {
        CSSM_DL_CUSTOM_ATTRIBUTES CustomAttributes;
        CSSM_DL_LDAP_ATTRIBUTES LdapAttributes;
        CSSM_DL_ODBC_ATTRIBUTES OdbcAttributes;
        CSSM_DL_PKCS11_ATTRIBUTES_PTR Pkcs11Attributes;
        CSSM_DL_FFS_ATTRIBUTES FfsAttributes;
    } Attributes;

    CSSM_DL_WRAPPEDPRODUCTINFO WrappedProduct;
    CSSM_USER_AUTHENTICATION_MECHANISM AuthenticationMechanism;

    /* meta information about the query support provided by the module */
    uint32 NumberOfRelOperatorTypes;
    CSSM_DB_OPERATOR_PTR RelOperatorTypes;
    uint32 NumberOfConjOperatorTypes;
    CSSM_DB_CONJUNCTIVE_PTR ConjOperatorTypes;
    CSSM_BOOL QueryLimitsSupported;

    /* meta information about the encapsulated data stores (if known) */
    uint32 NumberOfDataStores;
    CSSM_NAME_LIST_PTR DataStoreNames;
    CSSM_DBINFO_PTR DataStoreInfo;

    /* additional information */
    void *Reserved;
} CSSM_DLSUBSERVICE, *CSSM_DLSUBSERVICE_PTR;

/* Static data associated with a data storage library add-in module */

typedef enum cssm_algorithms {
    CSSM_ALGID_NONE      = 0,
    CSSM_ALGID_CUSTOM    = CSSM_ALGID_NONE+1, /* Custom algorithm */
    CSSM_ALGID_DH        = CSSM_ALGID_NONE+2, /* Diffie Hellman key exchange algorithm */
    CSSM_ALGID_PH        = CSSM_ALGID_NONE+3, /* Pohlig Hellman key exchange algorithm */
    CSSM_ALGID_KEA       = CSSM_ALGID_NONE+4, /* Key Exchange Algorithm */
    CSSM_ALGID_MD2       = CSSM_ALGID_NONE+5, /* MD2  hash algorithm  (invented by Ron Rivest) */
    CSSM_ALGID_MD4       = CSSM_ALGID_NONE+6, /* MD4  hash algorithm  (invented by Ron Rivest) */
    CSSM_ALGID_MD5       = CSSM_ALGID_NONE+7, /* MD5  hash algorithm  (invented by Ron Rivest) */
    CSSM_ALGID_SHA1      = CSSM_ALGID_NONE+8, /* Secure Hash Algorithm  (developed by NIST/NSA) */
    CSSM_ALGID_NHASH     = CSSM_ALGID_NONE+9, /* N-Hash algorithm(developed by Nippon Telephone and Telegraph) */
    CSSM_ALGID_HAVAL     = CSSM_ALGID_NONE+10,/* HAVAL  hash algorithm  (MD5 variant) */
    CSSM_ALGID_RIPEMD    = CSSM_ALGID_NONE+11,/* RIPE-MD  (160) hash algorithm  (MD4 variant - developed for the European Community's RIPE project) */
    CSSM_ALGID_IBCHASH   = CSSM_ALGID_NONE+12,/* IBC-Hash (keyed hash algorithm or MAC) */
    CSSM_ALGID_RIPEMAC   = CSSM_ALGID_NONE+13,/* RIPE-MAC (invented by Bart Preneel) */
    CSSM_ALGID_DES       = CSSM_ALGID_NONE+14,/* Data Encryption Standard block cipher */
    CSSM_ALGID_DESX      = CSSM_ALGID_NONE+15,/* DESX block cipher  (DES variant from RSA) */
    CSSM_ALGID_RDES      = CSSM_ALGID_NONE+16,/* RDES block cipher  (DES variant) */
    CSSM_ALGID_3DES_3KEY = CSSM_ALGID_NONE+17,/* Triple-DES block cipher  (with 3 keys) */
    CSSM_ALGID_3DES_2KEY = CSSM_ALGID_NONE+18,/* Triple-DES block cipher  (with 2 keys) */
    CSSM_ALGID_3DES_1KEY = CSSM_ALGID_NONE+19,/* Triple-DES block cipher  (with 1 key) */
    CSSM_ALGID_IDEA      = CSSM_ALGID_NONE+20,/* IDEA block cipher  (invented by Lai and Massey) */
    CSSM_ALGID_RC2       = CSSM_ALGID_NONE+21,/* RC2 block cipher  (invented by Ron Rivest) */
    CSSM_ALGID_RC5       = CSSM_ALGID_NONE+22,/* RC5 block cipher  (invented by Ron Rivest) */
    CSSM_ALGID_RC4       = CSSM_ALGID_NONE+23,/* RC4 stream cipher  (invented by Ron Rivest) */
    CSSM_ALGID_SEAL      = CSSM_ALGID_NONE+24,/* SEAL stream cipher  (invented by Rogaway and Coppersmith) */
    CSSM_ALGID_CAST      = CSSM_ALGID_NONE+25,/* CAST block cipher  (invented by Adams and Tavares) */
    CSSM_ALGID_BLOWFISH  = CSSM_ALGID_NONE+26,/* BLOWFISH block cipher  (invented by Schneier) */
    CSSM_ALGID_SKIPJACK  = CSSM_ALGID_NONE+27,/* Skipjack block cipher  (developed by NSA) */
    CSSM_ALGID_LUCIFER   = CSSM_ALGID_NONE+28,/* Lucifer block cipher  (developed by IBM) */
    CSSM_ALGID_MADRYGA   = CSSM_ALGID_NONE+29,/* Madryga block cipher  (invented by Madryga) */
    CSSM_ALGID_FEAL      = CSSM_ALGID_NONE+30,/* FEAL block cipher  (invented by Shimizu and Miyaguchi) */
    CSSM_ALGID_REDOC     = CSSM_ALGID_NONE+31,/* REDOC 2 block cipher  (invented by Michael Wood) */
    CSSM_ALGID_REDOC3    = CSSM_ALGID_NONE+32,/* REDOC 3 block cipher  (invented by Michael Wood) */
    CSSM_ALGID_LOKI      = CSSM_ALGID_NONE+33,/* LOKI block cipher */
    CSSM_ALGID_KHUFU     = CSSM_ALGID_NONE+34,/* KHUFU block cipher  (invented by Ralph Merkle) */
    CSSM_ALGID_KHAFRE    = CSSM_ALGID_NONE+35,/* KHAFRE block cipher  (invented by Ralph Merkle) */
    CSSM_ALGID_MMB       = CSSM_ALGID_NONE+36,/* MMB block cipher  (IDEA variant) */
    CSSM_ALGID_GOST      = CSSM_ALGID_NONE+37,/* GOST block cipher  (developed by the former Soviet Union) */
    CSSM_ALGID_SAFER     = CSSM_ALGID_NONE+38,/* SAFER K-64 block cipher  (invented by Massey) */
    CSSM_ALGID_CRAB      = CSSM_ALGID_NONE+39,/* CRAB block cipher  (invented by Kaliski and Robshaw) */
    CSSM_ALGID_RSA       = CSSM_ALGID_NONE+40,/* RSA public key cipher */
    CSSM_ALGID_DSA       = CSSM_ALGID_NONE+41,/* Digital Signature Algorithm */
    CSSM_ALGID_MD5WithRSA= CSSM_ALGID_NONE+42,/* MD5/RSA signature algorithm */
    CSSM_ALGID_MD2WithRSA= CSSM_ALGID_NONE+43,/* MD2/RSA signature algorithm */
    CSSM_ALGID_ElGamal   = CSSM_ALGID_NONE+44,/* ElGamal signature algorithm */
    CSSM_ALGID_MD2Random = CSSM_ALGID_NONE+45,/* MD2-based random numbers */
    CSSM_ALGID_MD5Random = CSSM_ALGID_NONE+46,/* MD5-based random numbers */
    CSSM_ALGID_SHARandom = CSSM_ALGID_NONE+47,/* SHA-based random numbers */
    CSSM_ALGID_DESRandom = CSSM_ALGID_NONE+48, /* DES-based random numbers */
    CSSM_ALGID_SHA1WithRSA = CSSM_ALGID_NONE+49, /* SHA1/RSA signature algorithm */
    CSSM_ALGID_RSA_PKCS  = CSSM_ALGID_RSA,     /* RSA as specified in PKCS #1 */
    CSSM_ALGID_RSA_ISO9796 = CSSM_ALGID_NONE+50, /* RSA as specified in ISO 9796 */
    CSSM_ALGID_RSA_RAW   = CSSM_ALGID_NONE+51, /* Raw RSA as assumed in X.509 */
    CSSM_ALGID_CDMF      = CSSM_ALGID_NONE+52, /* CDMF block cipher */
    CSSM_ALGID_CAST3     = CSSM_ALGID_NONE+53, /* Entrust's CAST3 block cipher */
    CSSM_ALGID_CAST5     = CSSM_ALGID_NONE+54, /* Entrust's CAST5 block cipher */
    CSSM_ALGID_GenericSecret = CSSM_ALGID_NONE+55, /* Generic secret operations */
    CSSM_ALGID_ConcatBaseAndKey = CSSM_ALGID_NONE+56, /* Concatenate two keys, base key first */
    CSSM_ALGID_ConcatKeyAndBase = CSSM_ALGID_NONE+57, /* Concatenate two keys, base key last */
    CSSM_ALGID_ConcatBaseAndData = CSSM_ALGID_NONE+58, /* Concatenate base key and random data, key first */
    CSSM_ALGID_ConcatDataAndBase = CSSM_ALGID_NONE+59, /* Concatenate base key and data, data first */
    CSSM_ALGID_XORBaseAndData = CSSM_ALGID_NONE+60, /* XOR a byte string with the base key */
    CSSM_ALGID_ExtractFromKey = CSSM_ALGID_NONE+61, /* Extract a key from base key, starting at arbitrary bit position */
    CSSM_ALGID_SSL3PreMasterGen = CSSM_ALGID_NONE+62, /* Generate a 48 byte SSL 3 pre-master key */
    CSSM_ALGID_SSL3MasterDerive = CSSM_ALGID_NONE+63, /* Derive an SSL 3 key from a pre-master key */
    CSSM_ALGID_SSL3KeyAndMacDerive = CSSM_ALGID_NONE+64, /* Derive the keys and MACing keys for the SSL cipher suite */
    CSSM_ALGID_SSL3MD5_MAC = CSSM_ALGID_NONE+65, /* Performs SSL 3 MD5 MACing */
    CSSM_ALGID_SSL3SHA1_MAC = CSSM_ALGID_NONE+66, /* Performs SSL 3 SHA-1 MACing */
    CSSM_ALGID_MD5_PBE   = CSSM_ALGID_NONE+67, /* Generate key and IV by MD5 hashing a base key */
    CSSM_ALGID_MD2_PBE   = CSSM_ALGID_NONE+68, /* Generate key and IV by MD2 hashing a base key */
    CSSM_ALGID_SHA1_PBE  = CSSM_ALGID_NONE+69, /* Generate key and IV by SHA-1 hashing a base key */
    CSSM_ALGID_WrapLynks = CSSM_ALGID_NONE+70, /* Spyrus LYNKS DES based wrapping scheme w/checksum */
    CSSM_ALGID_WrapSET_OAEP = CSSM_ALGID_NONE+71, /* SET key wrapping */
    CSSM_ALGID_BATON     = CSSM_ALGID_NONE+72, /* Fortezza BATON cipher */
    CSSM_ALGID_ECDSA     = CSSM_ALGID_NONE+73, /* Elliptic Curve DSA */
    CSSM_ALGID_MAYFLY    = CSSM_ALGID_NONE+74, /* Fortezza MAYFLY cipher */
    CSSM_ALGID_JUNIPER   = CSSM_ALGID_NONE+75, /* Fortezza JUNIPER cipher */
    CSSM_ALGID_FASTHASH  = CSSM_ALGID_NONE+76, /* Fortezza FASTHASH */
    CSSM_ALGID_3DES      = CSSM_ALGID_NONE+77, /* Generic 3DES */
    CSSM_ALGID_SSL3MD5   = CSSM_ALGID_NONE+78, /* SSL3MD5 */
    CSSM_ALGID_SSL3SHA1  = CSSM_ALGID_NONE+79, /* SSL3SHA1 */
    CSSM_ALGID_FortezzaTimestamp = CSSM_ALGID_NONE+80, /* FortezzaTimestamp */
    CSSM_ALGID_SHA1WithDSA = CSSM_ALGID_NONE+81, /* SHA1WithDSA */
    CSSM_ALGID_SHA1WithECDSA = CSSM_ALGID_NONE+82, /* SHA1WithECDSA */
    CSSM_ALGID_DSA_BSAFE = CSSM_ALGID_NONE+83,  /* BSafe Key format */
	CSSM_ALGID_ECDH = CSSM_ALGID_NONE+84,                /* Elliptic Curve DiffieHellman Key Exchange algorithm*/
	CSSM_ALGID_ECMQV = CSSM_ALGID_NONE+85,               /* Elliptic Curve MQV key exchange algorithm*/
	CSSM_ALGID_PKCS12_SHA1_PBE = CSSM_ALGID_NONE+86,     /* PKCS12 SHA-1 Password key derivation algorithm*/
	CSSM_ALGID_ECNRA = CSSM_ALGID_NONE+87,               /* Elliptic Curve Nyberg-Rueppel*/
	CSSM_ALGID_SHA1WithECNRA = CSSM_ALGID_NONE+88,      /* SHA-1 with Elliptic Curve Nyberg-Rueppel*/
	CSSM_ALGID_ECES = CSSM_ALGID_NONE+89,               /* Elliptic Curve Encryption Scheme*/
	CSSM_ALGID_ECAES = CSSM_ALGID_NONE+90,               /* Elliptic Curve Authenticate Encryption Scheme*/
	CSSM_ALGID_SHA1HMAC = CSSM_ALGID_NONE+91,           /* SHA1-MAC*/
	CSSM_ALGID_FIPS186Random = CSSM_ALGID_NONE+92,      /* FIPs86Random*/
	CSSM_ALGID_ECC = CSSM_ALGID_NONE+93,                 /* ECC*/
	CSSM_ALGID_MQV = CSSM_ALGID_NONE+94,          /* Discrete-Log MQV key exchange algorithm*/
	CSSM_ALGID_NRA  = CSSM_ALGID_NONE+95,          /* Discrete-Log Nyberg-Rueppel Signature scheme*/
	CSSM_ALGID_LAST = CSSM_ALGID_NONE+96       
} CSSM_ALGORITHMS;

typedef enum cssm_encrypt_mode {
    CSSM_ALGMODE_NONE       = 0,
    CSSM_ALGMODE_CUSTOM     = CSSM_ALGMODE_NONE+1, /* Custom mode */
    CSSM_ALGMODE_ECB        = CSSM_ALGMODE_NONE+2, /* Electronic Code Book */
    CSSM_ALGMODE_ECBPad     = CSSM_ALGMODE_NONE+3, /* ECB with padding */
    CSSM_ALGMODE_CBC        = CSSM_ALGMODE_NONE+4, /* Cipher Block Chaining */
    CSSM_ALGMODE_CBC_IV8    = CSSM_ALGMODE_NONE+5, /* CBC with Initialization Vector of 8 bytes */
    CSSM_ALGMODE_CBCPadIV8  = CSSM_ALGMODE_NONE+6, /* CBC with padding and Initialization Vector of 8 bytes */
    CSSM_ALGMODE_CFB        = CSSM_ALGMODE_NONE+7, /* Cipher FeedBack */
    CSSM_ALGMODE_CFB_IV8    = CSSM_ALGMODE_NONE+8, /* CFB with Initialization Vector of 8 bytes */
    CSSM_ALGMODE_CFBPadIV8  = CSSM_ALGMODE_NONE+9, /* CFB used in MS CAPI 2.0 */
    CSSM_ALGMODE_OFB        = CSSM_ALGMODE_NONE+10, /* Output FeedBack */
    CSSM_ALGMODE_OFB_IV8    = CSSM_ALGMODE_NONE+11, /* OFB with Initialization Vector of 8 bytes */
    CSSM_ALGMODE_OFBPadIV8  = CSSM_ALGMODE_NONE+12, /* OFB used in MS CAPI 2.0 */
    CSSM_ALGMODE_COUNTER    = CSSM_ALGMODE_NONE+13, /* Counter */
    CSSM_ALGMODE_BC         = CSSM_ALGMODE_NONE+14, /* Block Chaining */
    CSSM_ALGMODE_PCBC       = CSSM_ALGMODE_NONE+15, /* Propagating CBC */
    CSSM_ALGMODE_CBCC       = CSSM_ALGMODE_NONE+16, /* CBC with Checksum */
    CSSM_ALGMODE_OFBNLF     = CSSM_ALGMODE_NONE+17, /* OFB with NonLinear Function */
    CSSM_ALGMODE_PBC        = CSSM_ALGMODE_NONE+18, /* Plaintext Block Chaining */
    CSSM_ALGMODE_PFB        = CSSM_ALGMODE_NONE+19, /* Plaintext FeedBack */
    CSSM_ALGMODE_CBCPD      = CSSM_ALGMODE_NONE+20, /* CBC of Plaintext Difference */
    CSSM_ALGMODE_PUBLIC_KEY = CSSM_ALGMODE_NONE+21, /* Encrypt with the public key */
    CSSM_ALGMODE_PRIVATE_KEY= CSSM_ALGMODE_NONE+22, /* Encrypt with the private key */
    CSSM_ALGMODE_SHUFFLE    = CSSM_ALGMODE_NONE+23, /* Fortezza shuffle mode */
    CSSM_ALGMODE_ECB64      = CSSM_ALGMODE_NONE+24,
    CSSM_ALGMODE_CBC64      = CSSM_ALGMODE_NONE+25,
    CSSM_ALGMODE_OFB64      = CSSM_ALGMODE_NONE+26,
    CSSM_ALGMODE_CFB64      = CSSM_ALGMODE_NONE+27,
    CSSM_ALGMODE_CFB32      = CSSM_ALGMODE_NONE+28,
    CSSM_ALGMODE_CFB16      = CSSM_ALGMODE_NONE+29,
    CSSM_ALGMODE_CFB8       = CSSM_ALGMODE_NONE+30,
    CSSM_ALGMODE_WRAP       = CSSM_ALGMODE_NONE+31,
    CSSM_ALGMODE_PRIVATE_WRAP = CSSM_ALGMODE_NONE+32,
    CSSM_ALGMODE_RELAYX     = CSSM_ALGMODE_NONE+33,
    CSSM_ALGMODE_ECB128     = CSSM_ALGMODE_NONE+34,
    CSSM_ALGMODE_ECB96      = CSSM_ALGMODE_NONE+35,
    CSSM_ALGMODE_CBC128     = CSSM_ALGMODE_NONE+36,
    CSSM_ALGMODE_OAEP_HASH  = CSSM_ALGMODE_NONE+37,
    CSSM_ALGMODE_LAST		= CSSM_ALGMODE_NONE+38
} CSSM_ENCRYPT_MODE;

typedef enum cssm_context_type {
    CSSM_ALGCLASS_NONE      = 0,
    CSSM_ALGCLASS_CUSTOM    = CSSM_ALGCLASS_NONE+1,
    CSSM_ALGCLASS_KEYXCH    = CSSM_ALGCLASS_NONE+2,
    CSSM_ALGCLASS_SIGNATURE = CSSM_ALGCLASS_NONE+3,
    CSSM_ALGCLASS_SYMMETRIC = CSSM_ALGCLASS_NONE+4,
    CSSM_ALGCLASS_DIGEST    = CSSM_ALGCLASS_NONE+5,
    CSSM_ALGCLASS_RANDOMGEN = CSSM_ALGCLASS_NONE+6,
    CSSM_ALGCLASS_UNIQUEGEN = CSSM_ALGCLASS_NONE+7,
    CSSM_ALGCLASS_MAC       = CSSM_ALGCLASS_NONE+8,
    CSSM_ALGCLASS_ASYMMETRIC= CSSM_ALGCLASS_NONE+9,
    CSSM_ALGCLASS_KEYGEN    = CSSM_ALGCLASS_NONE+10,
    CSSM_ALGCLASS_DERIVEKEY = CSSM_ALGCLASS_NONE+11
}CSSM_CONTEXT_TYPE;

/* Attribute data type tags */
#define CSSM_ATTRIBUTE_DATA_NONE        0x00000000
#define CSSM_ATTRIBUTE_DATA_UINT32      0x10000000
#define CSSM_ATTRIBUTE_DATA_CSSM_DATA   0x20000000
#define CSSM_ATTRIBUTE_DATA_CRYPTO_DATA 0x30000000
#define CSSM_ATTRIBUTE_DATA_KEY         0x40000000
#define CSSM_ATTRIBUTE_DATA_STRING      0x50000000
#define CSSM_ATTRIBUTE_DATA_DATE        0x60000000
#define CSSM_ATTRIBUTE_DATA_RANGE       0x70000000
#define CSSM_ATTRIBUTE_DATA_VERSION     0x01000000

#define CSSM_ATTRIBUTE_TYPE_MASK        0xFF000000

typedef enum cssm_attribute_type {
    CSSM_ATTRIBUTE_NONE         = 0,
    CSSM_ATTRIBUTE_CUSTOM       = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 1),
    CSSM_ATTRIBUTE_DESCRIPTION  = (CSSM_ATTRIBUTE_DATA_STRING | 2),
    CSSM_ATTRIBUTE_KEY          = (CSSM_ATTRIBUTE_DATA_KEY | 3),
    CSSM_ATTRIBUTE_INIT_VECTOR  = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 4),
    CSSM_ATTRIBUTE_SALT         = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 5),
    CSSM_ATTRIBUTE_PADDING      = (CSSM_ATTRIBUTE_DATA_UINT32 | 6),
    CSSM_ATTRIBUTE_RANDOM       = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 7),
    CSSM_ATTRIBUTE_SEED         = (CSSM_ATTRIBUTE_DATA_CRYPTO_DATA | 8),
    CSSM_ATTRIBUTE_PASSPHRASE   = (CSSM_ATTRIBUTE_DATA_CRYPTO_DATA | 9),
    CSSM_ATTRIBUTE_KEY_LENGTH   = (CSSM_ATTRIBUTE_DATA_UINT32 | 10),
    CSSM_ATTRIBUTE_KEY_LENGTH_RANGE = (CSSM_ATTRIBUTE_DATA_RANGE | 11),
    CSSM_ATTRIBUTE_BLOCK_SIZE   = (CSSM_ATTRIBUTE_DATA_UINT32 | 12),
    CSSM_ATTRIBUTE_OUTPUT_SIZE  = (CSSM_ATTRIBUTE_DATA_UINT32 | 13),
    CSSM_ATTRIBUTE_ROUNDS       = (CSSM_ATTRIBUTE_DATA_UINT32 | 14),
    CSSM_ATTRIBUTE_IV_SIZE        = (CSSM_ATTRIBUTE_DATA_UINT32 | 15),
    CSSM_ATTRIBUTE_ALG_PARAMS    = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 16),
    CSSM_ATTRIBUTE_LABEL        = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 17),
    CSSM_ATTRIBUTE_KEY_TYPE        = (CSSM_ATTRIBUTE_DATA_UINT32 | 18),
    CSSM_ATTRIBUTE_MODE        = (CSSM_ATTRIBUTE_DATA_UINT32 | 19),
    CSSM_ATTRIBUTE_EFFECTIVE_BITS = (CSSM_ATTRIBUTE_DATA_UINT32 | 20),
    CSSM_ATTRIBUTE_START_DATE     = (CSSM_ATTRIBUTE_DATA_DATE | 21),
    CSSM_ATTRIBUTE_END_DATE       = (CSSM_ATTRIBUTE_DATA_DATE | 22),
    CSSM_ATTRIBUTE_KEYUSAGE     = (CSSM_ATTRIBUTE_DATA_UINT32 | 23),
    CSSM_ATTRIBUTE_KEYATTR      = (CSSM_ATTRIBUTE_DATA_UINT32 | 24),
    CSSM_ATTRIBUTE_VERSION      = (CSSM_ATTRIBUTE_DATA_VERSION | 25),
    CSSM_ATTRIBUTE_PRIME        = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 26),
    CSSM_ATTRIBUTE_BASE         = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 27),
    CSSM_ATTRIBUTE_SUBPRIME     = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | 28),
    CSSM_ATTRIBUTE_ALG_ID       = (CSSM_ATTRIBUTE_DATA_UINT32 | 29),
    CSSM_ATTRIBUTE_ITERATION_COUNT = (CSSM_ATTRIBUTE_DATA_UINT32 | 30),
    CSSM_ATTRIBUTE_ROUNDS_RANGE     = (CSSM_ATTRIBUTE_DATA_RANGE | 31),
    CSSM_ATTRIBUTE_CSP_HANDLE        = (CSSM_ATTRIBUTE_DATA_UINT32 | 34)
} CSSM_ATTRIBUTE_TYPE;

typedef enum cssm_padding { 
    CSSM_PADDING_NONE           = 0,
    CSSM_PADDING_CUSTOM         = CSSM_PADDING_NONE+1,
    CSSM_PADDING_ZERO           = CSSM_PADDING_NONE+2,
    CSSM_PADDING_ONE            = CSSM_PADDING_NONE+3,
    CSSM_PADDING_ALTERNATE      = CSSM_PADDING_NONE+4,
    CSSM_PADDING_FF             = CSSM_PADDING_NONE+5,
    CSSM_PADDING_PKCS5          = CSSM_PADDING_NONE+6,
    CSSM_PADDING_PKCS7          = CSSM_PADDING_NONE+7,
    CSSM_PADDING_CipherStealing = CSSM_PADDING_NONE+8,
    CSSM_PADDING_RANDOM         = CSSM_PADDING_NONE+9
} CSSM_PADDING;


/*
    CSSM_KEY & CSSM_KEYHEADER Data Structures  
*/

/*
    Blob Type
*/

#define CSSM_KEYBLOB_RAW                0            /* The blob is a clear, raw key */
#define CSSM_KEYBLOB_RAW_BERDER            1            /* The blob is a clear key, DER encoded */
#define CSSM_KEYBLOB_REFERENCE            2            /* The blob is a reference to a key */
#define CSSM_KEYBLOB_WRAPPED            3            /* The blob is a wrapped RAW key */
#define CSSM_KEYBLOB_WRAPPED_BERDER        4            /* The blob is a wrapped DER encoded key */
#define CSSM_KEYBLOB_OTHER                0xFFFFFFFF  /* The blob is a wrapped DER encoded key */

/*
    Raw Format 
*/

#define CSSM_KEYBLOB_RAW_FORMAT_NONE      0            /* No further conversion need to be done */
#define CSSM_KEYBLOB_RAW_FORMAT_PKCS1     1            /* RSA PKCS1 V1.5 */
#define CSSM_KEYBLOB_RAW_FORMAT_PKCS3     2            /* RSA PKCS3 V1.5 */
#define CSSM_KEYBLOB_RAW_FORMAT_MSCAPI    3            /* Microsoft CAPI V2.0 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?