Hex Artifact Content

Artifact 3048f0f5fdc755c47bc3380c75e89ab2a76d021f:


0000: 2f 2a 20 2a 2a 2a 2a 2a 20 42 45 47 49 4e 20 43  /* ***** BEGIN C
0010: 4f 50 59 52 49 47 48 54 20 42 4c 4f 43 4b 20 2a  OPYRIGHT BLOCK *
0020: 2a 2a 2a 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68  ****. * Copyrigh
0030: 74 20 28 43 29 20 32 30 30 35 20 52 65 64 20 48  t (C) 2005 Red H
0040: 61 74 2c 20 49 6e 63 2e 0a 20 2a 20 41 6c 6c 20  at, Inc.. * All 
0050: 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e  rights reserved.
0060: 0a 20 2a 0a 20 2a 20 54 68 69 73 20 6c 69 62 72  . *. * This libr
0070: 61 72 79 20 69 73 20 66 72 65 65 20 73 6f 66 74  ary is free soft
0080: 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65  ware; you can re
0090: 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e  distribute it an
00a0: 64 2f 6f 72 0a 20 2a 20 6d 6f 64 69 66 79 20 69  d/or. * modify i
00b0: 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d  t under the term
00c0: 73 20 6f 66 20 74 68 65 20 47 4e 55 20 4c 65 73  s of the GNU Les
00d0: 73 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c  ser General Publ
00e0: 69 63 0a 20 2a 20 4c 69 63 65 6e 73 65 20 61 73  ic. * License as
00f0: 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68   published by th
0100: 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20  e Free Software 
0110: 46 6f 75 6e 64 61 74 69 6f 6e 20 76 65 72 73 69  Foundation versi
0120: 6f 6e 0a 20 2a 20 32 2e 31 20 6f 66 20 74 68 65  on. * 2.1 of the
0130: 20 4c 69 63 65 6e 73 65 2e 0a 20 2a 0a 20 2a 20   License.. *. * 
0140: 54 68 69 73 20 6c 69 62 72 61 72 79 20 69 73 20  This library is 
0150: 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74  distributed in t
0160: 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20  he hope that it 
0170: 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a  will be useful,.
0180: 20 2a 20 62 75 74 20 57 49 54 48 4f 55 54 20 41   * but WITHOUT A
0190: 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74  NY WARRANTY; wit
01a0: 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d  hout even the im
01b0: 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f  plied warranty o
01c0: 66 0a 20 2a 20 4d 45 52 43 48 41 4e 54 41 42 49  f. * MERCHANTABI
01d0: 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20  LITY or FITNESS 
01e0: 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52  FOR A PARTICULAR
01f0: 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74   PURPOSE.  See t
0200: 68 65 20 47 4e 55 0a 20 2a 20 4c 65 73 73 65 72  he GNU. * Lesser
0210: 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20   General Public 
0220: 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65  License for more
0230: 20 64 65 74 61 69 6c 73 2e 0a 20 2a 0a 20 2a 20   details.. *. * 
0240: 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20  You should have 
0250: 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20  received a copy 
0260: 6f 66 20 74 68 65 20 47 4e 55 20 4c 65 73 73 65  of the GNU Lesse
0270: 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  r General Public
0280: 0a 20 2a 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e  . * License alon
0290: 67 20 77 69 74 68 20 74 68 69 73 20 6c 69 62 72  g with this libr
02a0: 61 72 79 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69  ary; if not, wri
02b0: 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53  te to the Free S
02c0: 6f 66 74 77 61 72 65 0a 20 2a 20 46 6f 75 6e 64  oftware. * Found
02d0: 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20  ation, Inc., 51 
02e0: 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66  Franklin St, Fif
02f0: 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e  th Floor, Boston
0300: 2c 20 4d 41 20 20 30 32 31 31 30 2d 31 33 30 31  , MA  02110-1301
0310: 20 20 55 53 41 0a 20 2a 20 2a 2a 2a 2a 2a 20 45    USA. * ***** E
0320: 4e 44 20 43 4f 50 59 52 49 47 48 54 20 42 4c 4f  ND COPYRIGHT BLO
0330: 43 4b 20 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 70 6b  CK *****/../* pk
0340: 63 73 31 31 74 2e 68 20 69 6e 63 6c 75 64 65 20  cs11t.h include 
0350: 66 69 6c 65 20 66 6f 72 20 50 4b 43 53 20 23 31  file for PKCS #1
0360: 31 2e 20 20 32 30 30 31 20 4a 75 6e 65 20 32 35  1.  2001 June 25
0370: 20 2a 2f 0a 0a 2f 2a 20 53 65 65 20 74 6f 70 20   */../* See top 
0380: 6f 66 20 70 6b 63 73 31 31 2e 68 20 66 6f 72 20  of pkcs11.h for 
0390: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75  information abou
03a0: 74 20 74 68 65 20 6d 61 63 72 6f 73 20 74 68 61  t the macros tha
03b0: 74 0a 20 2a 20 6d 75 73 74 20 62 65 20 64 65 66  t. * must be def
03c0: 69 6e 65 64 20 61 6e 64 20 74 68 65 20 73 74 72  ined and the str
03d0: 75 63 74 75 72 65 2d 70 61 63 6b 69 6e 67 20 63  ucture-packing c
03e0: 6f 6e 76 65 6e 74 69 6f 6e 73 20 74 68 61 74 0a  onventions that.
03f0: 20 2a 20 6d 75 73 74 20 62 65 20 73 65 74 20 62   * must be set b
0400: 65 66 6f 72 65 20 69 6e 63 6c 75 64 69 6e 67 20  efore including 
0410: 74 68 69 73 20 66 69 6c 65 2e 20 2a 2f 0a 0a 23  this file. */..#
0420: 69 66 6e 64 65 66 20 5f 50 4b 43 53 31 31 54 5f  ifndef _PKCS11T_
0430: 48 5f 0a 23 64 65 66 69 6e 65 20 5f 50 4b 43 53  H_.#define _PKCS
0440: 31 31 54 5f 48 5f 20 31 0a 0a 23 69 66 6e 64 65  11T_H_ 1..#ifnde
0450: 66 20 46 41 4c 53 45 0a 23 64 65 66 69 6e 65 20  f FALSE.#define 
0460: 46 41 4c 53 45 20 20 20 20 20 20 20 20 20 20 20  FALSE           
0470: 20 20 30 0a 23 65 6e 64 69 66 0a 0a 23 69 66 6e    0.#endif..#ifn
0480: 64 65 66 20 54 52 55 45 0a 23 64 65 66 69 6e 65  def TRUE.#define
0490: 20 54 52 55 45 20 20 20 20 20 20 20 20 20 20 20   TRUE           
04a0: 20 20 20 28 21 46 41 4c 53 45 29 0a 23 65 6e 64     (!FALSE).#end
04b0: 69 66 0a 0a 0a 2f 2a 20 61 6e 20 75 6e 73 69 67  if.../* an unsig
04c0: 6e 65 64 20 38 2d 62 69 74 20 76 61 6c 75 65 20  ned 8-bit value 
04d0: 2a 2f 0a 74 79 70 65 64 65 66 20 75 6e 73 69 67  */.typedef unsig
04e0: 6e 65 64 20 63 68 61 72 20 20 20 20 20 43 4b 5f  ned char     CK_
04f0: 42 59 54 45 3b 0a 0a 2f 2a 20 61 6e 20 75 6e 73  BYTE;../* an uns
0500: 69 67 6e 65 64 20 38 2d 62 69 74 20 63 68 61 72  igned 8-bit char
0510: 61 63 74 65 72 20 2a 2f 0a 74 79 70 65 64 65 66  acter */.typedef
0520: 20 43 4b 5f 42 59 54 45 20 20 20 20 20 20 20 20   CK_BYTE        
0530: 20 20 20 43 4b 5f 43 48 41 52 3b 0a 0a 2f 2a 20     CK_CHAR;../* 
0540: 61 6e 20 38 2d 62 69 74 20 55 54 46 2d 38 20 63  an 8-bit UTF-8 c
0550: 68 61 72 61 63 74 65 72 20 2a 2f 0a 74 79 70 65  haracter */.type
0560: 64 65 66 20 43 4b 5f 42 59 54 45 20 20 20 20 20  def CK_BYTE     
0570: 20 20 20 20 20 20 43 4b 5f 55 54 46 38 43 48 41        CK_UTF8CHA
0580: 52 3b 0a 0a 2f 2a 20 61 20 42 59 54 45 2d 73 69  R;../* a BYTE-si
0590: 7a 65 64 20 42 6f 6f 6c 65 61 6e 20 66 6c 61 67  zed Boolean flag
05a0: 20 2a 2f 0a 74 79 70 65 64 65 66 20 43 4b 5f 42   */.typedef CK_B
05b0: 59 54 45 20 20 20 20 20 20 20 20 20 20 20 43 4b  YTE           CK
05c0: 5f 42 42 4f 4f 4c 3b 0a 0a 2f 2a 20 61 6e 20 75  _BBOOL;../* an u
05d0: 6e 73 69 67 6e 65 64 20 76 61 6c 75 65 2c 20 61  nsigned value, a
05e0: 74 20 6c 65 61 73 74 20 33 32 20 62 69 74 73 20  t least 32 bits 
05f0: 6c 6f 6e 67 20 2a 2f 0a 74 79 70 65 64 65 66 20  long */.typedef 
0600: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e  unsigned long in
0610: 74 20 43 4b 5f 55 4c 4f 4e 47 3b 0a 0a 2f 2a 20  t CK_ULONG;../* 
0620: 61 20 73 69 67 6e 65 64 20 76 61 6c 75 65 2c 20  a signed value, 
0630: 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 73  the same size as
0640: 20 61 20 43 4b 5f 55 4c 4f 4e 47 20 2a 2f 0a 2f   a CK_ULONG */./
0650: 2a 20 43 4b 5f 4c 4f 4e 47 20 69 73 20 6e 65 77  * CK_LONG is new
0660: 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 74 79 70   for v2.0 */.typ
0670: 65 64 65 66 20 6c 6f 6e 67 20 69 6e 74 20 20 20  edef long int   
0680: 20 20 20 20 20 20 20 43 4b 5f 4c 4f 4e 47 3b 0a         CK_LONG;.
0690: 0a 2f 2a 20 61 74 20 6c 65 61 73 74 20 33 32 20  ./* at least 32 
06a0: 62 69 74 73 3b 20 65 61 63 68 20 62 69 74 20 69  bits; each bit i
06b0: 73 20 61 20 42 6f 6f 6c 65 61 6e 20 66 6c 61 67  s a Boolean flag
06c0: 20 2a 2f 0a 74 79 70 65 64 65 66 20 43 4b 5f 55   */.typedef CK_U
06d0: 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20 43 4b  LONG          CK
06e0: 5f 46 4c 41 47 53 3b 0a 0a 0a 2f 2a 20 73 6f 6d  _FLAGS;.../* som
06f0: 65 20 73 70 65 63 69 61 6c 20 76 61 6c 75 65 73  e special values
0700: 20 66 6f 72 20 63 65 72 74 61 69 6e 20 43 4b 5f   for certain CK_
0710: 55 4c 4f 4e 47 20 76 61 72 69 61 62 6c 65 73 20  ULONG variables 
0720: 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 5f 55 4e  */.#define CK_UN
0730: 41 56 41 49 4c 41 42 4c 45 5f 49 4e 46 4f 52 4d  AVAILABLE_INFORM
0740: 41 54 49 4f 4e 20 28 7e 30 55 4c 29 0a 23 64 65  ATION (~0UL).#de
0750: 66 69 6e 65 20 43 4b 5f 45 46 46 45 43 54 49 56  fine CK_EFFECTIV
0760: 45 4c 59 5f 49 4e 46 49 4e 49 54 45 20 20 20 20  ELY_INFINITE    
0770: 30 0a 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 42  0...typedef CK_B
0780: 59 54 45 20 20 20 20 20 43 4b 5f 50 54 52 20 20  YTE     CK_PTR  
0790: 20 43 4b 5f 42 59 54 45 5f 50 54 52 3b 0a 74 79   CK_BYTE_PTR;.ty
07a0: 70 65 64 65 66 20 43 4b 5f 43 48 41 52 20 20 20  pedef CK_CHAR   
07b0: 20 20 43 4b 5f 50 54 52 20 20 20 43 4b 5f 43 48    CK_PTR   CK_CH
07c0: 41 52 5f 50 54 52 3b 0a 74 79 70 65 64 65 66 20  AR_PTR;.typedef 
07d0: 43 4b 5f 55 54 46 38 43 48 41 52 20 43 4b 5f 50  CK_UTF8CHAR CK_P
07e0: 54 52 20 20 20 43 4b 5f 55 54 46 38 43 48 41 52  TR   CK_UTF8CHAR
07f0: 5f 50 54 52 3b 0a 74 79 70 65 64 65 66 20 43 4b  _PTR;.typedef CK
0800: 5f 55 4c 4f 4e 47 20 20 20 20 43 4b 5f 50 54 52  _ULONG    CK_PTR
0810: 20 20 20 43 4b 5f 55 4c 4f 4e 47 5f 50 54 52 3b     CK_ULONG_PTR;
0820: 0a 74 79 70 65 64 65 66 20 76 6f 69 64 20 20 20  .typedef void   
0830: 20 20 20 20 20 43 4b 5f 50 54 52 20 20 20 43 4b       CK_PTR   CK
0840: 5f 56 4f 49 44 5f 50 54 52 3b 0a 0a 2f 2a 20 50  _VOID_PTR;../* P
0850: 6f 69 6e 74 65 72 20 74 6f 20 61 20 43 4b 5f 56  ointer to a CK_V
0860: 4f 49 44 5f 50 54 52 2d 2d 20 69 2e 65 2e 2c 20  OID_PTR-- i.e., 
0870: 70 6f 69 6e 74 65 72 20 74 6f 20 70 6f 69 6e 74  pointer to point
0880: 65 72 20 74 6f 20 76 6f 69 64 20 2a 2f 0a 74 79  er to void */.ty
0890: 70 65 64 65 66 20 43 4b 5f 56 4f 49 44 5f 50 54  pedef CK_VOID_PT
08a0: 52 20 43 4b 5f 50 54 52 20 43 4b 5f 56 4f 49 44  R CK_PTR CK_VOID
08b0: 5f 50 54 52 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 54  _PTR_PTR;.../* T
08c0: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c  he following val
08d0: 75 65 20 69 73 20 61 6c 77 61 79 73 20 69 6e 76  ue is always inv
08e0: 61 6c 69 64 20 69 66 20 75 73 65 64 20 61 73 20  alid if used as 
08f0: 61 20 73 65 73 73 69 6f 6e 20 2a 2f 0a 2f 2a 20  a session */./* 
0900: 68 61 6e 64 6c 65 20 6f 72 20 6f 62 6a 65 63 74  handle or object
0910: 20 68 61 6e 64 6c 65 20 2a 2f 0a 23 64 65 66 69   handle */.#defi
0920: 6e 65 20 43 4b 5f 49 4e 56 41 4c 49 44 5f 48 41  ne CK_INVALID_HA
0930: 4e 44 4c 45 20 30 0a 0a 0a 74 79 70 65 64 65 66  NDLE 0...typedef
0940: 20 73 74 72 75 63 74 20 43 4b 5f 56 45 52 53 49   struct CK_VERSI
0950: 4f 4e 20 7b 0a 20 20 43 4b 5f 42 59 54 45 20 20  ON {.  CK_BYTE  
0960: 20 20 20 20 20 6d 61 6a 6f 72 3b 20 20 2f 2a 20       major;  /* 
0970: 69 6e 74 65 67 65 72 20 70 6f 72 74 69 6f 6e 20  integer portion 
0980: 6f 66 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65  of version numbe
0990: 72 20 2a 2f 0a 20 20 43 4b 5f 42 59 54 45 20 20  r */.  CK_BYTE  
09a0: 20 20 20 20 20 6d 69 6e 6f 72 3b 20 20 2f 2a 20       minor;  /* 
09b0: 31 2f 31 30 30 74 68 73 20 70 6f 72 74 69 6f 6e  1/100ths portion
09c0: 20 6f 66 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62   of version numb
09d0: 65 72 20 2a 2f 0a 7d 20 43 4b 5f 56 45 52 53 49  er */.} CK_VERSI
09e0: 4f 4e 3b 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f  ON;..typedef CK_
09f0: 56 45 52 53 49 4f 4e 20 43 4b 5f 50 54 52 20 43  VERSION CK_PTR C
0a00: 4b 5f 56 45 52 53 49 4f 4e 5f 50 54 52 3b 0a 0a  K_VERSION_PTR;..
0a10: 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20  .typedef struct 
0a20: 43 4b 5f 49 4e 46 4f 20 7b 0a 20 20 2f 2a 20 6d  CK_INFO {.  /* m
0a30: 61 6e 75 66 61 63 74 75 72 65 72 49 44 20 61 6e  anufacturerID an
0a40: 64 20 6c 69 62 72 61 72 79 44 65 63 72 69 70 74  d libraryDecript
0a50: 69 6f 6e 20 68 61 76 65 20 62 65 65 6e 20 63 68  ion have been ch
0a60: 61 6e 67 65 64 20 66 72 6f 6d 0a 20 20 20 2a 20  anged from.   * 
0a70: 43 4b 5f 43 48 41 52 20 74 6f 20 43 4b 5f 55 54  CK_CHAR to CK_UT
0a80: 46 38 43 48 41 52 20 66 6f 72 20 76 32 2e 31 30  F8CHAR for v2.10
0a90: 20 2a 2f 0a 20 20 43 4b 5f 56 45 52 53 49 4f 4e   */.  CK_VERSION
0aa0: 20 20 20 20 63 72 79 70 74 6f 6b 69 56 65 72 73      cryptokiVers
0ab0: 69 6f 6e 3b 20 20 20 20 20 2f 2a 20 43 72 79 70  ion;     /* Cryp
0ac0: 74 6f 6b 69 20 69 6e 74 65 72 66 61 63 65 20 76  toki interface v
0ad0: 65 72 20 2a 2f 0a 20 20 43 4b 5f 55 54 46 38 43  er */.  CK_UTF8C
0ae0: 48 41 52 20 20 20 6d 61 6e 75 66 61 63 74 75 72  HAR   manufactur
0af0: 65 72 49 44 5b 33 32 5d 3b 20 20 2f 2a 20 62 6c  erID[32];  /* bl
0b00: 61 6e 6b 20 70 61 64 64 65 64 20 2a 2f 0a 20 20  ank padded */.  
0b10: 43 4b 5f 46 4c 41 47 53 20 20 20 20 20 20 66 6c  CK_FLAGS      fl
0b20: 61 67 73 3b 20 20 20 20 20 20 20 20 20 20 20 20  ags;            
0b30: 20 20 20 2f 2a 20 6d 75 73 74 20 62 65 20 7a 65     /* must be ze
0b40: 72 6f 20 2a 2f 0a 0a 20 20 2f 2a 20 6c 69 62 72  ro */..  /* libr
0b50: 61 72 79 44 65 73 63 72 69 70 74 69 6f 6e 20 61  aryDescription a
0b60: 6e 64 20 6c 69 62 72 61 72 79 56 65 72 73 69 6f  nd libraryVersio
0b70: 6e 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32  n are new for v2
0b80: 2e 30 20 2a 2f 0a 20 20 43 4b 5f 55 54 46 38 43  .0 */.  CK_UTF8C
0b90: 48 41 52 20 20 20 6c 69 62 72 61 72 79 44 65 73  HAR   libraryDes
0ba0: 63 72 69 70 74 69 6f 6e 5b 33 32 5d 3b 20 20 2f  cription[32];  /
0bb0: 2a 20 62 6c 61 6e 6b 20 70 61 64 64 65 64 20 2a  * blank padded *
0bc0: 2f 0a 20 20 43 4b 5f 56 45 52 53 49 4f 4e 20 20  /.  CK_VERSION  
0bd0: 20 20 6c 69 62 72 61 72 79 56 65 72 73 69 6f 6e    libraryVersion
0be0: 3b 20 20 20 20 20 20 20 20 20 20 2f 2a 20 76 65  ;          /* ve
0bf0: 72 73 69 6f 6e 20 6f 66 20 6c 69 62 72 61 72 79  rsion of library
0c00: 20 2a 2f 0a 7d 20 43 4b 5f 49 4e 46 4f 3b 0a 0a   */.} CK_INFO;..
0c10: 74 79 70 65 64 65 66 20 43 4b 5f 49 4e 46 4f 20  typedef CK_INFO 
0c20: 43 4b 5f 50 54 52 20 20 20 20 43 4b 5f 49 4e 46  CK_PTR    CK_INF
0c30: 4f 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f 4e  O_PTR;.../* CK_N
0c40: 4f 54 49 46 49 43 41 54 49 4f 4e 20 65 6e 75 6d  OTIFICATION enum
0c50: 65 72 61 74 65 73 20 74 68 65 20 74 79 70 65 73  erates the types
0c60: 20 6f 66 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e   of notification
0c70: 73 20 74 68 61 74 0a 20 2a 20 43 72 79 70 74 6f  s that. * Crypto
0c80: 6b 69 20 70 72 6f 76 69 64 65 73 20 74 6f 20 61  ki provides to a
0c90: 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 2a 2f  n application */
0ca0: 0a 2f 2a 20 43 4b 5f 4e 4f 54 49 46 49 43 41 54  ./* CK_NOTIFICAT
0cb0: 49 4f 4e 20 68 61 73 20 62 65 65 6e 20 63 68 61  ION has been cha
0cc0: 6e 67 65 64 20 66 72 6f 6d 20 61 6e 20 65 6e 75  nged from an enu
0cd0: 6d 20 74 6f 20 61 20 43 4b 5f 55 4c 4f 4e 47 0a  m to a CK_ULONG.
0ce0: 20 2a 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 74   * for v2.0 */.t
0cf0: 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f 4e 47 20  ypedef CK_ULONG 
0d00: 43 4b 5f 4e 4f 54 49 46 49 43 41 54 49 4f 4e 3b  CK_NOTIFICATION;
0d10: 0a 23 64 65 66 69 6e 65 20 43 4b 4e 5f 53 55 52  .#define CKN_SUR
0d20: 52 45 4e 44 45 52 20 20 20 20 20 20 20 30 0a 0a  RENDER       0..
0d30: 0a 74 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f 4e  .typedef CK_ULON
0d40: 47 20 20 20 20 20 20 20 20 20 20 43 4b 5f 53 4c  G          CK_SL
0d50: 4f 54 5f 49 44 3b 0a 0a 74 79 70 65 64 65 66 20  OT_ID;..typedef 
0d60: 43 4b 5f 53 4c 4f 54 5f 49 44 20 43 4b 5f 50 54  CK_SLOT_ID CK_PT
0d70: 52 20 43 4b 5f 53 4c 4f 54 5f 49 44 5f 50 54 52  R CK_SLOT_ID_PTR
0d80: 3b 0a 0a 0a 2f 2a 20 43 4b 5f 53 4c 4f 54 5f 49  ;.../* CK_SLOT_I
0d90: 4e 46 4f 20 70 72 6f 76 69 64 65 73 20 69 6e 66  NFO provides inf
0da0: 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61  ormation about a
0db0: 20 73 6c 6f 74 20 2a 2f 0a 74 79 70 65 64 65 66   slot */.typedef
0dc0: 20 73 74 72 75 63 74 20 43 4b 5f 53 4c 4f 54 5f   struct CK_SLOT_
0dd0: 49 4e 46 4f 20 7b 0a 20 20 2f 2a 20 73 6c 6f 74  INFO {.  /* slot
0de0: 44 65 73 63 72 69 70 74 69 6f 6e 20 61 6e 64 20  Description and 
0df0: 6d 61 6e 75 66 61 63 74 75 72 65 72 49 44 20 68  manufacturerID h
0e00: 61 76 65 20 62 65 65 6e 20 63 68 61 6e 67 65 64  ave been changed
0e10: 20 66 72 6f 6d 0a 20 20 20 2a 20 43 4b 5f 43 48   from.   * CK_CH
0e20: 41 52 20 74 6f 20 43 4b 5f 55 54 46 38 43 48 41  AR to CK_UTF8CHA
0e30: 52 20 66 6f 72 20 76 32 2e 31 30 20 2a 2f 0a 20  R for v2.10 */. 
0e40: 20 43 4b 5f 55 54 46 38 43 48 41 52 20 20 20 73   CK_UTF8CHAR   s
0e50: 6c 6f 74 44 65 73 63 72 69 70 74 69 6f 6e 5b 36  lotDescription[6
0e60: 34 5d 3b 20 20 2f 2a 20 62 6c 61 6e 6b 20 70 61  4];  /* blank pa
0e70: 64 64 65 64 20 2a 2f 0a 20 20 43 4b 5f 55 54 46  dded */.  CK_UTF
0e80: 38 43 48 41 52 20 20 20 6d 61 6e 75 66 61 63 74  8CHAR   manufact
0e90: 75 72 65 72 49 44 5b 33 32 5d 3b 20 20 20 2f 2a  urerID[32];   /*
0ea0: 20 62 6c 61 6e 6b 20 70 61 64 64 65 64 20 2a 2f   blank padded */
0eb0: 0a 20 20 43 4b 5f 46 4c 41 47 53 20 20 20 20 20  .  CK_FLAGS     
0ec0: 20 66 6c 61 67 73 3b 0a 0a 20 20 2f 2a 20 68 61   flags;..  /* ha
0ed0: 72 64 77 61 72 65 56 65 72 73 69 6f 6e 20 61 6e  rdwareVersion an
0ee0: 64 20 66 69 72 6d 77 61 72 65 56 65 72 73 69 6f  d firmwareVersio
0ef0: 6e 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32  n are new for v2
0f00: 2e 30 20 2a 2f 0a 20 20 43 4b 5f 56 45 52 53 49  .0 */.  CK_VERSI
0f10: 4f 4e 20 20 20 20 68 61 72 64 77 61 72 65 56 65  ON    hardwareVe
0f20: 72 73 69 6f 6e 3b 20 20 2f 2a 20 76 65 72 73 69  rsion;  /* versi
0f30: 6f 6e 20 6f 66 20 68 61 72 64 77 61 72 65 20 2a  on of hardware *
0f40: 2f 0a 20 20 43 4b 5f 56 45 52 53 49 4f 4e 20 20  /.  CK_VERSION  
0f50: 20 20 66 69 72 6d 77 61 72 65 56 65 72 73 69 6f    firmwareVersio
0f60: 6e 3b 20 20 2f 2a 20 76 65 72 73 69 6f 6e 20 6f  n;  /* version o
0f70: 66 20 66 69 72 6d 77 61 72 65 20 2a 2f 0a 7d 20  f firmware */.} 
0f80: 43 4b 5f 53 4c 4f 54 5f 49 4e 46 4f 3b 0a 0a 2f  CK_SLOT_INFO;../
0f90: 2a 20 66 6c 61 67 73 3a 20 62 69 74 20 66 6c 61  * flags: bit fla
0fa0: 67 73 20 74 68 61 74 20 70 72 6f 76 69 64 65 20  gs that provide 
0fb0: 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f 66 20  capabilities of 
0fc0: 74 68 65 20 73 6c 6f 74 0a 20 2a 20 20 20 20 20  the slot. *     
0fd0: 20 42 69 74 20 46 6c 61 67 20 20 20 20 20 20 20   Bit Flag       
0fe0: 20 20 20 20 20 20 20 4d 61 73 6b 20 20 20 20 20         Mask     
0ff0: 20 20 20 4d 65 61 6e 69 6e 67 0a 20 2a 2f 0a 23     Meaning. */.#
1000: 64 65 66 69 6e 65 20 43 4b 46 5f 54 4f 4b 45 4e  define CKF_TOKEN
1010: 5f 50 52 45 53 45 4e 54 20 20 20 20 20 30 78 30  _PRESENT     0x0
1020: 30 30 30 30 30 30 31 20 20 2f 2a 20 61 20 74 6f  0000001  /* a to
1030: 6b 65 6e 20 69 73 20 74 68 65 72 65 20 2a 2f 0a  ken is there */.
1040: 23 64 65 66 69 6e 65 20 43 4b 46 5f 52 45 4d 4f  #define CKF_REMO
1050: 56 41 42 4c 45 5f 44 45 56 49 43 45 20 20 30 78  VABLE_DEVICE  0x
1060: 30 30 30 30 30 30 30 32 20 20 2f 2a 20 72 65 6d  00000002  /* rem
1070: 6f 76 61 62 6c 65 20 64 65 76 69 63 65 73 2a 2f  ovable devices*/
1080: 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 48 57 5f  .#define CKF_HW_
1090: 53 4c 4f 54 20 20 20 20 20 20 20 20 20 20 20 30  SLOT           0
10a0: 78 30 30 30 30 30 30 30 34 20 20 2f 2a 20 68 61  x00000004  /* ha
10b0: 72 64 77 61 72 65 20 73 6c 6f 74 20 2a 2f 0a 0a  rdware slot */..
10c0: 74 79 70 65 64 65 66 20 43 4b 5f 53 4c 4f 54 5f  typedef CK_SLOT_
10d0: 49 4e 46 4f 20 43 4b 5f 50 54 52 20 43 4b 5f 53  INFO CK_PTR CK_S
10e0: 4c 4f 54 5f 49 4e 46 4f 5f 50 54 52 3b 0a 0a 0a  LOT_INFO_PTR;...
10f0: 2f 2a 20 43 4b 5f 54 4f 4b 45 4e 5f 49 4e 46 4f  /* CK_TOKEN_INFO
1100: 20 70 72 6f 76 69 64 65 73 20 69 6e 66 6f 72 6d   provides inform
1110: 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 74 6f  ation about a to
1120: 6b 65 6e 20 2a 2f 0a 74 79 70 65 64 65 66 20 73  ken */.typedef s
1130: 74 72 75 63 74 20 43 4b 5f 54 4f 4b 45 4e 5f 49  truct CK_TOKEN_I
1140: 4e 46 4f 20 7b 0a 20 20 2f 2a 20 6c 61 62 65 6c  NFO {.  /* label
1150: 2c 20 6d 61 6e 75 66 61 63 74 75 72 65 72 49 44  , manufacturerID
1160: 2c 20 61 6e 64 20 6d 6f 64 65 6c 20 68 61 76 65  , and model have
1170: 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 66 72   been changed fr
1180: 6f 6d 0a 20 20 20 2a 20 43 4b 5f 43 48 41 52 20  om.   * CK_CHAR 
1190: 74 6f 20 43 4b 5f 55 54 46 38 43 48 41 52 20 66  to CK_UTF8CHAR f
11a0: 6f 72 20 76 32 2e 31 30 20 2a 2f 0a 20 20 43 4b  or v2.10 */.  CK
11b0: 5f 55 54 46 38 43 48 41 52 20 20 20 6c 61 62 65  _UTF8CHAR   labe
11c0: 6c 5b 33 32 5d 3b 20 20 20 20 20 20 20 20 20 20  l[32];          
11d0: 20 2f 2a 20 62 6c 61 6e 6b 20 70 61 64 64 65 64   /* blank padded
11e0: 20 2a 2f 0a 20 20 43 4b 5f 55 54 46 38 43 48 41   */.  CK_UTF8CHA
11f0: 52 20 20 20 6d 61 6e 75 66 61 63 74 75 72 65 72  R   manufacturer
1200: 49 44 5b 33 32 5d 3b 20 20 2f 2a 20 62 6c 61 6e  ID[32];  /* blan
1210: 6b 20 70 61 64 64 65 64 20 2a 2f 0a 20 20 43 4b  k padded */.  CK
1220: 5f 55 54 46 38 43 48 41 52 20 20 20 6d 6f 64 65  _UTF8CHAR   mode
1230: 6c 5b 31 36 5d 3b 20 20 20 20 20 20 20 20 20 20  l[16];          
1240: 20 2f 2a 20 62 6c 61 6e 6b 20 70 61 64 64 65 64   /* blank padded
1250: 20 2a 2f 0a 20 20 43 4b 5f 43 48 41 52 20 20 20   */.  CK_CHAR   
1260: 20 20 20 20 73 65 72 69 61 6c 4e 75 6d 62 65 72      serialNumber
1270: 5b 31 36 5d 3b 20 20 20 20 2f 2a 20 62 6c 61 6e  [16];    /* blan
1280: 6b 20 70 61 64 64 65 64 20 2a 2f 0a 20 20 43 4b  k padded */.  CK
1290: 5f 46 4c 41 47 53 20 20 20 20 20 20 66 6c 61 67  _FLAGS      flag
12a0: 73 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  s;              
12b0: 20 2f 2a 20 73 65 65 20 62 65 6c 6f 77 20 2a 2f   /* see below */
12c0: 0a 0a 20 20 2f 2a 20 75 6c 4d 61 78 53 65 73 73  ..  /* ulMaxSess
12d0: 69 6f 6e 43 6f 75 6e 74 2c 20 75 6c 53 65 73 73  ionCount, ulSess
12e0: 69 6f 6e 43 6f 75 6e 74 2c 20 75 6c 4d 61 78 52  ionCount, ulMaxR
12f0: 77 53 65 73 73 69 6f 6e 43 6f 75 6e 74 2c 0a 20  wSessionCount,. 
1300: 20 20 2a 20 75 6c 52 77 53 65 73 73 69 6f 6e 43    * ulRwSessionC
1310: 6f 75 6e 74 2c 20 75 6c 4d 61 78 50 69 6e 4c 65  ount, ulMaxPinLe
1320: 6e 2c 20 61 6e 64 20 75 6c 4d 69 6e 50 69 6e 4c  n, and ulMinPinL
1330: 65 6e 20 68 61 76 65 20 61 6c 6c 20 62 65 65 6e  en have all been
1340: 0a 20 20 20 2a 20 63 68 61 6e 67 65 64 20 66 72  .   * changed fr
1350: 6f 6d 20 43 4b 5f 55 53 48 4f 52 54 20 74 6f 20  om CK_USHORT to 
1360: 43 4b 5f 55 4c 4f 4e 47 20 66 6f 72 20 76 32 2e  CK_ULONG for v2.
1370: 30 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20  0 */.  CK_ULONG 
1380: 20 20 20 20 20 75 6c 4d 61 78 53 65 73 73 69 6f       ulMaxSessio
1390: 6e 43 6f 75 6e 74 3b 20 20 20 20 20 2f 2a 20 6d  nCount;     /* m
13a0: 61 78 20 6f 70 65 6e 20 73 65 73 73 69 6f 6e 73  ax open sessions
13b0: 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20   */.  CK_ULONG  
13c0: 20 20 20 20 75 6c 53 65 73 73 69 6f 6e 43 6f 75      ulSessionCou
13d0: 6e 74 3b 20 20 20 20 20 20 20 20 2f 2a 20 73 65  nt;        /* se
13e0: 73 73 2e 20 6e 6f 77 20 6f 70 65 6e 20 2a 2f 0a  ss. now open */.
13f0: 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20    CK_ULONG      
1400: 75 6c 4d 61 78 52 77 53 65 73 73 69 6f 6e 43 6f  ulMaxRwSessionCo
1410: 75 6e 74 3b 20 20 20 2f 2a 20 6d 61 78 20 52 2f  unt;   /* max R/
1420: 57 20 73 65 73 73 69 6f 6e 73 20 2a 2f 0a 20 20  W sessions */.  
1430: 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75 6c  CK_ULONG      ul
1440: 52 77 53 65 73 73 69 6f 6e 43 6f 75 6e 74 3b 20  RwSessionCount; 
1450: 20 20 20 20 20 2f 2a 20 52 2f 57 20 73 65 73 73       /* R/W sess
1460: 2e 20 6e 6f 77 20 6f 70 65 6e 20 2a 2f 0a 20 20  . now open */.  
1470: 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75 6c  CK_ULONG      ul
1480: 4d 61 78 50 69 6e 4c 65 6e 3b 20 20 20 20 20 20  MaxPinLen;      
1490: 20 20 20 20 20 2f 2a 20 69 6e 20 62 79 74 65 73       /* in bytes
14a0: 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20   */.  CK_ULONG  
14b0: 20 20 20 20 75 6c 4d 69 6e 50 69 6e 4c 65 6e 3b      ulMinPinLen;
14c0: 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 69 6e             /* in
14d0: 20 62 79 74 65 73 20 2a 2f 0a 20 20 43 4b 5f 55   bytes */.  CK_U
14e0: 4c 4f 4e 47 20 20 20 20 20 20 75 6c 54 6f 74 61  LONG      ulTota
14f0: 6c 50 75 62 6c 69 63 4d 65 6d 6f 72 79 3b 20 20  lPublicMemory;  
1500: 20 2f 2a 20 69 6e 20 62 79 74 65 73 20 2a 2f 0a   /* in bytes */.
1510: 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20    CK_ULONG      
1520: 75 6c 46 72 65 65 50 75 62 6c 69 63 4d 65 6d 6f  ulFreePublicMemo
1530: 72 79 3b 20 20 20 20 2f 2a 20 69 6e 20 62 79 74  ry;    /* in byt
1540: 65 73 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47  es */.  CK_ULONG
1550: 20 20 20 20 20 20 75 6c 54 6f 74 61 6c 50 72 69        ulTotalPri
1560: 76 61 74 65 4d 65 6d 6f 72 79 3b 20 20 2f 2a 20  vateMemory;  /* 
1570: 69 6e 20 62 79 74 65 73 20 2a 2f 0a 20 20 43 4b  in bytes */.  CK
1580: 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75 6c 46 72  _ULONG      ulFr
1590: 65 65 50 72 69 76 61 74 65 4d 65 6d 6f 72 79 3b  eePrivateMemory;
15a0: 20 20 20 2f 2a 20 69 6e 20 62 79 74 65 73 20 2a     /* in bytes *
15b0: 2f 0a 0a 20 20 2f 2a 20 68 61 72 64 77 61 72 65  /..  /* hardware
15c0: 56 65 72 73 69 6f 6e 2c 20 66 69 72 6d 77 61 72  Version, firmwar
15d0: 65 56 65 72 73 69 6f 6e 2c 20 61 6e 64 20 74 69  eVersion, and ti
15e0: 6d 65 20 61 72 65 20 6e 65 77 20 66 6f 72 0a 20  me are new for. 
15f0: 20 20 2a 20 76 32 2e 30 20 2a 2f 0a 20 20 43 4b    * v2.0 */.  CK
1600: 5f 56 45 52 53 49 4f 4e 20 20 20 20 68 61 72 64  _VERSION    hard
1610: 77 61 72 65 56 65 72 73 69 6f 6e 3b 20 20 20 20  wareVersion;    
1620: 20 20 20 2f 2a 20 76 65 72 73 69 6f 6e 20 6f 66     /* version of
1630: 20 68 61 72 64 77 61 72 65 20 2a 2f 0a 20 20 43   hardware */.  C
1640: 4b 5f 56 45 52 53 49 4f 4e 20 20 20 20 66 69 72  K_VERSION    fir
1650: 6d 77 61 72 65 56 65 72 73 69 6f 6e 3b 20 20 20  mwareVersion;   
1660: 20 20 20 20 2f 2a 20 76 65 72 73 69 6f 6e 20 6f      /* version o
1670: 66 20 66 69 72 6d 77 61 72 65 20 2a 2f 0a 20 20  f firmware */.  
1680: 43 4b 5f 43 48 41 52 20 20 20 20 20 20 20 75 74  CK_CHAR       ut
1690: 63 54 69 6d 65 5b 31 36 5d 3b 20 20 20 20 20 20  cTime[16];      
16a0: 20 20 20 20 20 2f 2a 20 74 69 6d 65 20 2a 2f 0a       /* time */.
16b0: 7d 20 43 4b 5f 54 4f 4b 45 4e 5f 49 4e 46 4f 3b  } CK_TOKEN_INFO;
16c0: 0a 0a 2f 2a 20 54 68 65 20 66 6c 61 67 73 20 70  ../* The flags p
16d0: 61 72 61 6d 65 74 65 72 20 69 73 20 64 65 66 69  arameter is defi
16e0: 6e 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a  ned as follows:.
16f0: 20 2a 20 20 20 20 20 20 42 69 74 20 46 6c 61 67   *      Bit Flag
1700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1710: 20 20 20 20 4d 61 73 6b 20 20 20 20 20 20 20 20      Mask        
1720: 4d 65 61 6e 69 6e 67 20 0a 20 2a 2f 0a 23 64 65  Meaning . */.#de
1730: 66 69 6e 65 20 43 4b 46 5f 52 4e 47 20 20 20 20  fine CKF_RNG    
1740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1750: 20 30 78 30 30 30 30 30 30 30 31 20 20 2f 2a 20   0x00000001  /* 
1760: 68 61 73 20 72 61 6e 64 6f 6d 20 23 0a 20 20 20  has random #.   
1770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20                * 
17a0: 67 65 6e 65 72 61 74 6f 72 20 2a 2f 0a 23 64 65  generator */.#de
17b0: 66 69 6e 65 20 43 4b 46 5f 57 52 49 54 45 5f 50  fine CKF_WRITE_P
17c0: 52 4f 54 45 43 54 45 44 20 20 20 20 20 20 20 20  ROTECTED        
17d0: 20 30 78 30 30 30 30 30 30 30 32 20 20 2f 2a 20   0x00000002  /* 
17e0: 74 6f 6b 65 6e 20 69 73 0a 20 20 20 20 20 20 20  token is.       
17f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1810: 20 20 20 20 20 20 20 20 20 20 2a 20 77 72 69 74            * writ
1820: 65 2d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  e-.             
1830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1850: 20 20 20 20 2a 20 70 72 6f 74 65 63 74 65 64 20      * protected 
1860: 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 4c  */.#define CKF_L
1870: 4f 47 49 4e 5f 52 45 51 55 49 52 45 44 20 20 20  OGIN_REQUIRED   
1880: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30         0x0000000
1890: 34 20 20 2f 2a 20 75 73 65 72 20 6d 75 73 74 0a  4  /* user must.
18a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d0: 20 2a 20 6c 6f 67 69 6e 20 2a 2f 0a 23 64 65 66   * login */.#def
18e0: 69 6e 65 20 43 4b 46 5f 55 53 45 52 5f 50 49 4e  ine CKF_USER_PIN
18f0: 5f 49 4e 49 54 49 41 4c 49 5a 45 44 20 20 20 20  _INITIALIZED    
1900: 30 78 30 30 30 30 30 30 30 38 20 20 2f 2a 20 6e  0x00000008  /* n
1910: 6f 72 6d 61 6c 20 75 73 65 72 27 73 0a 20 20 20  ormal user's.   
1920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20                * 
1950: 50 49 4e 20 69 73 20 73 65 74 20 2a 2f 0a 0a 2f  PIN is set */../
1960: 2a 20 43 4b 46 5f 52 45 53 54 4f 52 45 5f 4b 45  * CKF_RESTORE_KE
1970: 59 5f 4e 4f 54 5f 4e 45 45 44 45 44 20 69 73 20  Y_NOT_NEEDED is 
1980: 6e 65 77 20 66 6f 72 20 76 32 2e 30 2e 20 20 49  new for v2.0.  I
1990: 66 20 69 74 20 69 73 20 73 65 74 2c 0a 20 2a 20  f it is set,. * 
19a0: 74 68 61 74 20 6d 65 61 6e 73 20 74 68 61 74 20  that means that 
19b0: 2a 65 76 65 72 79 2a 20 74 69 6d 65 20 74 68 65  *every* time the
19c0: 20 73 74 61 74 65 20 6f 66 20 63 72 79 70 74 6f   state of crypto
19d0: 67 72 61 70 68 69 63 0a 20 2a 20 6f 70 65 72 61  graphic. * opera
19e0: 74 69 6f 6e 73 20 6f 66 20 61 20 73 65 73 73 69  tions of a sessi
19f0: 6f 6e 20 69 73 20 73 75 63 63 65 73 73 66 75 6c  on is successful
1a00: 6c 79 20 73 61 76 65 64 2c 20 61 6c 6c 20 6b 65  ly saved, all ke
1a10: 79 73 0a 20 2a 20 6e 65 65 64 65 64 20 74 6f 20  ys. * needed to 
1a20: 63 6f 6e 74 69 6e 75 65 20 74 68 6f 73 65 20 6f  continue those o
1a30: 70 65 72 61 74 69 6f 6e 73 20 61 72 65 20 73 74  perations are st
1a40: 6f 72 65 64 20 69 6e 20 74 68 65 20 73 74 61 74  ored in the stat
1a50: 65 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46  e */.#define CKF
1a60: 5f 52 45 53 54 4f 52 45 5f 4b 45 59 5f 4e 4f 54  _RESTORE_KEY_NOT
1a70: 5f 4e 45 45 44 45 44 20 20 30 78 30 30 30 30 30  _NEEDED  0x00000
1a80: 30 32 30 0a 0a 2f 2a 20 43 4b 46 5f 43 4c 4f 43  020../* CKF_CLOC
1a90: 4b 5f 4f 4e 5f 54 4f 4b 45 4e 20 69 73 20 6e 65  K_ON_TOKEN is ne
1aa0: 77 20 66 6f 72 20 76 32 2e 30 2e 20 20 49 66 20  w for v2.0.  If 
1ab0: 69 74 20 69 73 20 73 65 74 2c 20 74 68 61 74 20  it is set, that 
1ac0: 6d 65 61 6e 73 0a 20 2a 20 74 68 61 74 20 74 68  means. * that th
1ad0: 65 20 74 6f 6b 65 6e 20 68 61 73 20 73 6f 6d 65  e token has some
1ae0: 20 73 6f 72 74 20 6f 66 20 63 6c 6f 63 6b 2e 20   sort of clock. 
1af0: 20 54 68 65 20 74 69 6d 65 20 6f 6e 20 74 68 61   The time on tha
1b00: 74 0a 20 2a 20 63 6c 6f 63 6b 20 69 73 20 72 65  t. * clock is re
1b10: 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 74 6f  turned in the to
1b20: 6b 65 6e 20 69 6e 66 6f 20 73 74 72 75 63 74 75  ken info structu
1b30: 72 65 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  re */.#define CK
1b40: 46 5f 43 4c 4f 43 4b 5f 4f 4e 5f 54 4f 4b 45 4e  F_CLOCK_ON_TOKEN
1b50: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
1b60: 30 30 34 30 0a 0a 2f 2a 20 43 4b 46 5f 50 52 4f  0040../* CKF_PRO
1b70: 54 45 43 54 45 44 5f 41 55 54 48 45 4e 54 49 43  TECTED_AUTHENTIC
1b80: 41 54 49 4f 4e 5f 50 41 54 48 20 69 73 20 6e 65  ATION_PATH is ne
1b90: 77 20 66 6f 72 20 76 32 2e 30 2e 20 20 49 66 20  w for v2.0.  If 
1ba0: 69 74 20 69 73 0a 20 2a 20 73 65 74 2c 20 74 68  it is. * set, th
1bb0: 61 74 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68  at means that th
1bc0: 65 72 65 20 69 73 20 73 6f 6d 65 20 77 61 79 20  ere is some way 
1bd0: 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20  for the user to 
1be0: 6c 6f 67 69 6e 0a 20 2a 20 77 69 74 68 6f 75 74  login. * without
1bf0: 20 73 65 6e 64 69 6e 67 20 61 20 50 49 4e 20 74   sending a PIN t
1c00: 68 72 6f 75 67 68 20 74 68 65 20 43 72 79 70 74  hrough the Crypt
1c10: 6f 6b 69 20 6c 69 62 72 61 72 79 20 69 74 73 65  oki library itse
1c20: 6c 66 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  lf */.#define CK
1c30: 46 5f 50 52 4f 54 45 43 54 45 44 5f 41 55 54 48  F_PROTECTED_AUTH
1c40: 45 4e 54 49 43 41 54 49 4f 4e 5f 50 41 54 48 20  ENTICATION_PATH 
1c50: 30 78 30 30 30 30 30 31 30 30 0a 0a 2f 2a 20 43  0x00000100../* C
1c60: 4b 46 5f 44 55 41 4c 5f 43 52 59 50 54 4f 5f 4f  KF_DUAL_CRYPTO_O
1c70: 50 45 52 41 54 49 4f 4e 53 20 69 73 20 6e 65 77  PERATIONS is new
1c80: 20 66 6f 72 20 76 32 2e 30 2e 20 20 49 66 20 69   for v2.0.  If i
1c90: 74 20 69 73 20 74 72 75 65 2c 0a 20 2a 20 74 68  t is true,. * th
1ca0: 61 74 20 6d 65 61 6e 73 20 74 68 61 74 20 61 20  at means that a 
1cb0: 73 69 6e 67 6c 65 20 73 65 73 73 69 6f 6e 20 77  single session w
1cc0: 69 74 68 20 74 68 65 20 74 6f 6b 65 6e 20 63 61  ith the token ca
1cd0: 6e 20 70 65 72 66 6f 72 6d 0a 20 2a 20 64 75 61  n perform. * dua
1ce0: 6c 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 63  l simultaneous c
1cf0: 72 79 70 74 6f 67 72 61 70 68 69 63 20 6f 70 65  ryptographic ope
1d00: 72 61 74 69 6f 6e 73 20 28 64 69 67 65 73 74 20  rations (digest 
1d10: 61 6e 64 0a 20 2a 20 65 6e 63 72 79 70 74 3b 20  and. * encrypt; 
1d20: 64 65 63 72 79 70 74 20 61 6e 64 20 64 69 67 65  decrypt and dige
1d30: 73 74 3b 20 73 69 67 6e 20 61 6e 64 20 65 6e 63  st; sign and enc
1d40: 72 79 70 74 3b 20 61 6e 64 20 64 65 63 72 79 70  rypt; and decryp
1d50: 74 0a 20 2a 20 61 6e 64 20 73 69 67 6e 29 20 2a  t. * and sign) *
1d60: 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 44 55  /.#define CKF_DU
1d70: 41 4c 5f 43 52 59 50 54 4f 5f 4f 50 45 52 41 54  AL_CRYPTO_OPERAT
1d80: 49 4f 4e 53 20 20 30 78 30 30 30 30 30 32 30 30  IONS  0x00000200
1d90: 0a 0a 2f 2a 20 43 4b 46 5f 54 4f 4b 45 4e 5f 49  ../* CKF_TOKEN_I
1da0: 4e 49 54 49 41 4c 49 5a 45 44 20 69 66 20 6e 65  NITIALIZED if ne
1db0: 77 20 66 6f 72 20 76 32 2e 31 30 2e 20 49 66 20  w for v2.10. If 
1dc0: 69 74 20 69 73 20 74 72 75 65 2c 20 74 68 65 0a  it is true, the.
1dd0: 20 2a 20 74 6f 6b 65 6e 20 68 61 73 20 62 65 65   * token has bee
1de0: 6e 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 75 73  n initialized us
1df0: 69 6e 67 20 43 5f 49 6e 69 74 69 61 6c 69 7a 65  ing C_Initialize
1e00: 54 6f 6b 65 6e 20 6f 72 20 61 6e 20 0a 20 2a 20  Token or an . * 
1e10: 65 71 75 69 76 61 6c 65 6e 74 20 6d 65 63 68 61  equivalent mecha
1e20: 6e 69 73 6d 20 6f 75 74 73 69 64 65 20 74 68 65  nism outside the
1e30: 20 73 63 6f 70 65 20 6f 66 20 50 4b 43 53 20 23   scope of PKCS #
1e40: 31 31 2e 0a 20 2a 20 43 61 6c 6c 69 6e 67 20 43  11.. * Calling C
1e50: 5f 49 6e 69 74 69 61 6c 69 7a 65 54 6f 6b 65 6e  _InitializeToken
1e60: 20 77 68 65 6e 20 74 68 69 73 20 66 6c 61 67 20   when this flag 
1e70: 69 73 20 73 65 74 20 77 69 6c 6c 20 63 61 75 73  is set will caus
1e80: 65 20 0a 20 2a 20 74 68 65 20 74 6f 6b 65 6e 20  e . * the token 
1e90: 74 6f 20 62 65 20 72 65 69 6e 69 74 69 61 6c 69  to be reinitiali
1ea0: 7a 65 64 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20  zed. */.#define 
1eb0: 43 4b 46 5f 54 4f 4b 45 4e 5f 49 4e 49 54 49 41  CKF_TOKEN_INITIA
1ec0: 4c 49 5a 45 44 20 20 20 20 20 20 20 30 78 30 30  LIZED       0x00
1ed0: 30 30 30 34 30 30 0a 0a 2f 2a 20 43 4b 46 5f 53  000400../* CKF_S
1ee0: 45 43 4f 4e 44 41 52 59 5f 41 55 54 48 45 4e 54  ECONDARY_AUTHENT
1ef0: 49 43 41 54 49 4f 4e 20 69 66 20 6e 65 77 20 66  ICATION if new f
1f00: 6f 72 20 76 32 2e 31 30 2e 20 49 66 20 69 74 20  or v2.10. If it 
1f10: 69 73 20 0a 20 2a 20 74 72 75 65 2c 20 74 68 65  is . * true, the
1f20: 20 74 6f 6b 65 6e 20 73 75 70 70 6f 72 74 73 20   token supports 
1f30: 73 65 63 6f 6e 64 61 72 79 20 61 75 74 68 65 6e  secondary authen
1f40: 74 69 63 61 74 69 6f 6e 20 66 6f 72 20 0a 20 2a  tication for . *
1f50: 20 70 72 69 76 61 74 65 20 6b 65 79 20 6f 62 6a   private key obj
1f60: 65 63 74 73 2e 20 2a 2f 0a 23 64 65 66 69 6e 65  ects. */.#define
1f70: 20 43 4b 46 5f 53 45 43 4f 4e 44 41 52 59 5f 41   CKF_SECONDARY_A
1f80: 55 54 48 45 4e 54 49 43 41 54 49 4f 4e 20 20 30  UTHENTICATION  0
1f90: 78 30 30 30 30 30 38 30 30 0a 0a 2f 2a 20 43 4b  x00000800../* CK
1fa0: 46 5f 55 53 45 52 5f 50 49 4e 5f 43 4f 55 4e 54  F_USER_PIN_COUNT
1fb0: 5f 4c 4f 57 20 69 66 20 6e 65 77 20 66 6f 72 20  _LOW if new for 
1fc0: 76 32 2e 31 30 2e 20 49 66 20 69 74 20 69 73 20  v2.10. If it is 
1fd0: 74 72 75 65 2c 20 61 6e 20 0a 20 2a 20 69 6e 63  true, an . * inc
1fe0: 6f 72 72 65 63 74 20 75 73 65 72 20 6c 6f 67 69  orrect user logi
1ff0: 6e 20 50 49 4e 20 68 61 73 20 62 65 65 6e 20 65  n PIN has been e
2000: 6e 74 65 72 65 64 20 61 74 20 6c 65 61 73 74 20  ntered at least 
2010: 6f 6e 63 65 20 0a 20 2a 20 73 69 6e 63 65 20 74  once . * since t
2020: 68 65 20 6c 61 73 74 20 73 75 63 63 65 73 73 66  he last successf
2030: 75 6c 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f  ul authenticatio
2040: 6e 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  n. */.#define CK
2050: 46 5f 55 53 45 52 5f 50 49 4e 5f 43 4f 55 4e 54  F_USER_PIN_COUNT
2060: 5f 4c 4f 57 20 20 20 20 20 20 20 30 78 30 30 30  _LOW       0x000
2070: 31 30 30 30 30 0a 0a 2f 2a 20 43 4b 46 5f 55 53  10000../* CKF_US
2080: 45 52 5f 50 49 4e 5f 46 49 4e 41 4c 5f 54 52 59  ER_PIN_FINAL_TRY
2090: 20 69 66 20 6e 65 77 20 66 6f 72 20 76 32 2e 31   if new for v2.1
20a0: 30 2e 20 49 66 20 69 74 20 69 73 20 74 72 75 65  0. If it is true
20b0: 2c 0a 20 2a 20 73 75 70 70 6c 79 69 6e 67 20 61  ,. * supplying a
20c0: 6e 20 69 6e 63 6f 72 72 65 63 74 20 75 73 65 72  n incorrect user
20d0: 20 50 49 4e 20 77 69 6c 6c 20 69 74 20 74 6f 20   PIN will it to 
20e0: 62 65 63 6f 6d 65 20 6c 6f 63 6b 65 64 2e 20 2a  become locked. *
20f0: 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 55 53  /.#define CKF_US
2100: 45 52 5f 50 49 4e 5f 46 49 4e 41 4c 5f 54 52 59  ER_PIN_FINAL_TRY
2110: 20 20 20 20 20 20 20 30 78 30 30 30 32 30 30 30         0x0002000
2120: 30 0a 0a 2f 2a 20 43 4b 46 5f 55 53 45 52 5f 50  0../* CKF_USER_P
2130: 49 4e 5f 4c 4f 43 4b 45 44 20 69 66 20 6e 65 77  IN_LOCKED if new
2140: 20 66 6f 72 20 76 32 2e 31 30 2e 20 49 66 20 69   for v2.10. If i
2150: 74 20 69 73 20 74 72 75 65 2c 20 74 68 65 20 0a  t is true, the .
2160: 20 2a 20 75 73 65 72 20 50 49 4e 20 68 61 73 20   * user PIN has 
2170: 62 65 65 6e 20 6c 6f 63 6b 65 64 2e 20 55 73 65  been locked. Use
2180: 72 20 6c 6f 67 69 6e 20 74 6f 20 74 68 65 20 74  r login to the t
2190: 6f 6b 65 6e 20 69 73 20 6e 6f 74 20 0a 20 2a 20  oken is not . * 
21a0: 70 6f 73 73 69 62 6c 65 2e 20 2a 2f 0a 23 64 65  possible. */.#de
21b0: 66 69 6e 65 20 43 4b 46 5f 55 53 45 52 5f 50 49  fine CKF_USER_PI
21c0: 4e 5f 4c 4f 43 4b 45 44 20 20 20 20 20 20 20 20  N_LOCKED        
21d0: 20 20 30 78 30 30 30 34 30 30 30 30 0a 0a 2f 2a    0x00040000../*
21e0: 20 43 4b 46 5f 55 53 45 52 5f 50 49 4e 5f 54 4f   CKF_USER_PIN_TO
21f0: 5f 42 45 5f 43 48 41 4e 47 45 44 20 69 66 20 6e  _BE_CHANGED if n
2200: 65 77 20 66 6f 72 20 76 32 2e 31 30 2e 20 49 66  ew for v2.10. If
2210: 20 69 74 20 69 73 20 74 72 75 65 2c 20 0a 20 2a   it is true, . *
2220: 20 74 68 65 20 75 73 65 72 20 50 49 4e 20 76 61   the user PIN va
2230: 6c 75 65 20 69 73 20 74 68 65 20 64 65 66 61 75  lue is the defau
2240: 6c 74 20 76 61 6c 75 65 20 73 65 74 20 62 79 20  lt value set by 
2250: 74 6f 6b 65 6e 20 0a 20 2a 20 69 6e 69 74 69 61  token . * initia
2260: 6c 69 7a 61 74 69 6f 6e 20 6f 72 20 6d 61 6e 75  lization or manu
2270: 66 61 63 74 75 72 69 6e 67 2c 20 6f 72 20 74 68  facturing, or th
2280: 65 20 50 49 4e 20 68 61 73 20 62 65 65 6e 0a 20  e PIN has been. 
2290: 2a 20 65 78 70 69 72 65 64 20 62 79 20 74 68 65  * expired by the
22a0: 20 63 61 72 64 2e 20 2a 2f 0a 23 64 65 66 69 6e   card. */.#defin
22b0: 65 20 43 4b 46 5f 55 53 45 52 5f 50 49 4e 5f 54  e CKF_USER_PIN_T
22c0: 4f 5f 42 45 5f 43 48 41 4e 47 45 44 20 20 20 30  O_BE_CHANGED   0
22d0: 78 30 30 30 38 30 30 30 30 0a 0a 2f 2a 20 43 4b  x00080000../* CK
22e0: 46 5f 53 4f 5f 50 49 4e 5f 43 4f 55 4e 54 5f 4c  F_SO_PIN_COUNT_L
22f0: 4f 57 20 69 66 20 6e 65 77 20 66 6f 72 20 76 32  OW if new for v2
2300: 2e 31 30 2e 20 49 66 20 69 74 20 69 73 20 74 72  .10. If it is tr
2310: 75 65 2c 20 61 6e 20 0a 20 2a 20 69 6e 63 6f 72  ue, an . * incor
2320: 72 65 63 74 20 53 4f 20 6c 6f 67 69 6e 20 50 49  rect SO login PI
2330: 4e 20 68 61 73 20 62 65 65 6e 20 65 6e 74 65 72  N has been enter
2340: 65 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 63 65  ed at least once
2350: 20 73 69 6e 63 65 20 0a 20 2a 20 74 68 65 20 6c   since . * the l
2360: 61 73 74 20 73 75 63 63 65 73 73 66 75 6c 20 61  ast successful a
2370: 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 20 2a  uthentication. *
2380: 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 53 4f  /.#define CKF_SO
2390: 5f 50 49 4e 5f 43 4f 55 4e 54 5f 4c 4f 57 20 20  _PIN_COUNT_LOW  
23a0: 20 20 20 20 20 20 20 30 78 30 30 31 30 30 30 30         0x0010000
23b0: 30 0a 0a 2f 2a 20 43 4b 46 5f 53 4f 5f 50 49 4e  0../* CKF_SO_PIN
23c0: 5f 46 49 4e 41 4c 5f 54 52 59 20 69 66 20 6e 65  _FINAL_TRY if ne
23d0: 77 20 66 6f 72 20 76 32 2e 31 30 2e 20 49 66 20  w for v2.10. If 
23e0: 69 74 20 69 73 20 74 72 75 65 2c 0a 20 2a 20 73  it is true,. * s
23f0: 75 70 70 6c 79 69 6e 67 20 61 6e 20 69 6e 63 6f  upplying an inco
2400: 72 72 65 63 74 20 53 4f 20 50 49 4e 20 77 69 6c  rrect SO PIN wil
2410: 6c 20 69 74 20 74 6f 20 62 65 63 6f 6d 65 20 6c  l it to become l
2420: 6f 63 6b 65 64 2e 20 2a 2f 0a 23 64 65 66 69 6e  ocked. */.#defin
2430: 65 20 43 4b 46 5f 53 4f 5f 50 49 4e 5f 46 49 4e  e CKF_SO_PIN_FIN
2440: 41 4c 5f 54 52 59 20 20 20 20 20 20 20 20 20 30  AL_TRY         0
2450: 78 30 30 32 30 30 30 30 30 0a 0a 2f 2a 20 43 4b  x00200000../* CK
2460: 46 5f 53 4f 5f 50 49 4e 5f 4c 4f 43 4b 45 44 20  F_SO_PIN_LOCKED 
2470: 69 66 20 6e 65 77 20 66 6f 72 20 76 32 2e 31 30  if new for v2.10
2480: 2e 20 49 66 20 69 74 20 69 73 20 74 72 75 65 2c  . If it is true,
2490: 20 74 68 65 20 53 4f 20 0a 20 2a 20 50 49 4e 20   the SO . * PIN 
24a0: 68 61 73 20 62 65 65 6e 20 6c 6f 63 6b 65 64 2e  has been locked.
24b0: 20 53 4f 20 6c 6f 67 69 6e 20 74 6f 20 74 68 65   SO login to the
24c0: 20 74 6f 6b 65 6e 20 69 73 20 6e 6f 74 20 70 6f   token is not po
24d0: 73 73 69 62 6c 65 2e 0a 20 2a 2f 0a 23 64 65 66  ssible.. */.#def
24e0: 69 6e 65 20 43 4b 46 5f 53 4f 5f 50 49 4e 5f 4c  ine CKF_SO_PIN_L
24f0: 4f 43 4b 45 44 20 20 20 20 20 20 20 20 20 20 20  OCKED           
2500: 20 30 78 30 30 34 30 30 30 30 30 0a 0a 2f 2a 20   0x00400000../* 
2510: 43 4b 46 5f 53 4f 5f 50 49 4e 5f 54 4f 5f 42 45  CKF_SO_PIN_TO_BE
2520: 5f 43 48 41 4e 47 45 44 20 69 66 20 6e 65 77 20  _CHANGED if new 
2530: 66 6f 72 20 76 32 2e 31 30 2e 20 49 66 20 69 74  for v2.10. If it
2540: 20 69 73 20 74 72 75 65 2c 20 0a 20 2a 20 74 68   is true, . * th
2550: 65 20 53 4f 20 50 49 4e 20 76 61 6c 75 65 20 69  e SO PIN value i
2560: 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61  s the default va
2570: 6c 75 65 20 73 65 74 20 62 79 20 74 6f 6b 65 6e  lue set by token
2580: 20 0a 20 2a 20 69 6e 69 74 69 61 6c 69 7a 61 74   . * initializat
2590: 69 6f 6e 20 6f 72 20 6d 61 6e 75 66 61 63 74 75  ion or manufactu
25a0: 72 69 6e 67 2c 20 6f 72 20 74 68 65 20 50 49 4e  ring, or the PIN
25b0: 20 68 61 73 20 62 65 65 6e 0a 20 2a 20 65 78 70   has been. * exp
25c0: 69 72 65 64 20 62 79 20 74 68 65 20 63 61 72 64  ired by the card
25d0: 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46  . */.#define CKF
25e0: 5f 53 4f 5f 50 49 4e 5f 54 4f 5f 42 45 5f 43 48  _SO_PIN_TO_BE_CH
25f0: 41 4e 47 45 44 20 20 20 20 20 30 78 30 30 38 30  ANGED     0x0080
2600: 30 30 30 30 0a 0a 74 79 70 65 64 65 66 20 43 4b  0000..typedef CK
2610: 5f 54 4f 4b 45 4e 5f 49 4e 46 4f 20 43 4b 5f 50  _TOKEN_INFO CK_P
2620: 54 52 20 43 4b 5f 54 4f 4b 45 4e 5f 49 4e 46 4f  TR CK_TOKEN_INFO
2630: 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f 53 45  _PTR;.../* CK_SE
2640: 53 53 49 4f 4e 5f 48 41 4e 44 4c 45 20 69 73 20  SSION_HANDLE is 
2650: 61 20 43 72 79 70 74 6f 6b 69 2d 61 73 73 69 67  a Cryptoki-assig
2660: 6e 65 64 20 76 61 6c 75 65 20 74 68 61 74 0a 20  ned value that. 
2670: 2a 20 69 64 65 6e 74 69 66 69 65 73 20 61 20 73  * identifies a s
2680: 65 73 73 69 6f 6e 20 2a 2f 0a 74 79 70 65 64 65  ession */.typede
2690: 66 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20  f CK_ULONG      
26a0: 20 20 20 20 43 4b 5f 53 45 53 53 49 4f 4e 5f 48      CK_SESSION_H
26b0: 41 4e 44 4c 45 3b 0a 0a 74 79 70 65 64 65 66 20  ANDLE;..typedef 
26c0: 43 4b 5f 53 45 53 53 49 4f 4e 5f 48 41 4e 44 4c  CK_SESSION_HANDL
26d0: 45 20 43 4b 5f 50 54 52 20 43 4b 5f 53 45 53 53  E CK_PTR CK_SESS
26e0: 49 4f 4e 5f 48 41 4e 44 4c 45 5f 50 54 52 3b 20  ION_HANDLE_PTR; 
26f0: 0a 0a 0a 2f 2a 20 43 4b 5f 55 53 45 52 5f 54 59  .../* CK_USER_TY
2700: 50 45 20 65 6e 75 6d 65 72 61 74 65 73 20 74 68  PE enumerates th
2710: 65 20 74 79 70 65 73 20 6f 66 20 43 72 79 70 74  e types of Crypt
2720: 6f 6b 69 20 75 73 65 72 73 20 2a 2f 0a 2f 2a 20  oki users */./* 
2730: 43 4b 5f 55 53 45 52 5f 54 59 50 45 20 68 61 73  CK_USER_TYPE has
2740: 20 62 65 65 6e 20 63 68 61 6e 67 65 64 20 66 72   been changed fr
2750: 6f 6d 20 61 6e 20 65 6e 75 6d 20 74 6f 20 61 20  om an enum to a 
2760: 43 4b 5f 55 4c 4f 4e 47 20 66 6f 72 0a 20 2a 20  CK_ULONG for. * 
2770: 76 32 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66 20  v2.0 */.typedef 
2780: 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20  CK_ULONG        
2790: 20 20 43 4b 5f 55 53 45 52 5f 54 59 50 45 3b 0a    CK_USER_TYPE;.
27a0: 2f 2a 20 53 65 63 75 72 69 74 79 20 4f 66 66 69  /* Security Offi
27b0: 63 65 72 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  cer */.#define C
27c0: 4b 55 5f 53 4f 20 20 20 20 30 0a 2f 2a 20 4e 6f  KU_SO    0./* No
27d0: 72 6d 61 6c 20 75 73 65 72 20 2a 2f 0a 23 64 65  rmal user */.#de
27e0: 66 69 6e 65 20 43 4b 55 5f 55 53 45 52 20 20 31  fine CKU_USER  1
27f0: 0a 0a 0a 2f 2a 20 43 4b 5f 53 54 41 54 45 20 65  .../* CK_STATE e
2800: 6e 75 6d 65 72 61 74 65 73 20 74 68 65 20 73 65  numerates the se
2810: 73 73 69 6f 6e 20 73 74 61 74 65 73 20 2a 2f 0a  ssion states */.
2820: 2f 2a 20 43 4b 5f 53 54 41 54 45 20 68 61 73 20  /* CK_STATE has 
2830: 62 65 65 6e 20 63 68 61 6e 67 65 64 20 66 72 6f  been changed fro
2840: 6d 20 61 6e 20 65 6e 75 6d 20 74 6f 20 61 20 43  m an enum to a C
2850: 4b 5f 55 4c 4f 4e 47 20 66 6f 72 0a 20 2a 20 76  K_ULONG for. * v
2860: 32 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66 20 43  2.0 */.typedef C
2870: 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20  K_ULONG         
2880: 20 43 4b 5f 53 54 41 54 45 3b 0a 23 64 65 66 69   CK_STATE;.#defi
2890: 6e 65 20 43 4b 53 5f 52 4f 5f 50 55 42 4c 49 43  ne CKS_RO_PUBLIC
28a0: 5f 53 45 53 53 49 4f 4e 20 20 30 0a 23 64 65 66  _SESSION  0.#def
28b0: 69 6e 65 20 43 4b 53 5f 52 4f 5f 55 53 45 52 5f  ine CKS_RO_USER_
28c0: 46 55 4e 43 54 49 4f 4e 53 20 20 31 0a 23 64 65  FUNCTIONS  1.#de
28d0: 66 69 6e 65 20 43 4b 53 5f 52 57 5f 50 55 42 4c  fine CKS_RW_PUBL
28e0: 49 43 5f 53 45 53 53 49 4f 4e 20 20 32 0a 23 64  IC_SESSION  2.#d
28f0: 65 66 69 6e 65 20 43 4b 53 5f 52 57 5f 55 53 45  efine CKS_RW_USE
2900: 52 5f 46 55 4e 43 54 49 4f 4e 53 20 20 33 0a 23  R_FUNCTIONS  3.#
2910: 64 65 66 69 6e 65 20 43 4b 53 5f 52 57 5f 53 4f  define CKS_RW_SO
2920: 5f 46 55 4e 43 54 49 4f 4e 53 20 20 20 20 34 0a  _FUNCTIONS    4.
2930: 0a 0a 2f 2a 20 43 4b 5f 53 45 53 53 49 4f 4e 5f  ../* CK_SESSION_
2940: 49 4e 46 4f 20 70 72 6f 76 69 64 65 73 20 69 6e  INFO provides in
2950: 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20  formation about 
2960: 61 20 73 65 73 73 69 6f 6e 20 2a 2f 0a 74 79 70  a session */.typ
2970: 65 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f 53  edef struct CK_S
2980: 45 53 53 49 4f 4e 5f 49 4e 46 4f 20 7b 0a 20 20  ESSION_INFO {.  
2990: 43 4b 5f 53 4c 4f 54 5f 49 44 20 20 20 20 73 6c  CK_SLOT_ID    sl
29a0: 6f 74 49 44 3b 0a 20 20 43 4b 5f 53 54 41 54 45  otID;.  CK_STATE
29b0: 20 20 20 20 20 20 73 74 61 74 65 3b 0a 20 20 43        state;.  C
29c0: 4b 5f 46 4c 41 47 53 20 20 20 20 20 20 66 6c 61  K_FLAGS      fla
29d0: 67 73 3b 20 20 20 20 20 20 20 20 20 20 2f 2a 20  gs;          /* 
29e0: 73 65 65 20 62 65 6c 6f 77 20 2a 2f 0a 0a 20 20  see below */..  
29f0: 2f 2a 20 75 6c 44 65 76 69 63 65 45 72 72 6f 72  /* ulDeviceError
2a00: 20 77 61 73 20 63 68 61 6e 67 65 64 20 66 72 6f   was changed fro
2a10: 6d 20 43 4b 5f 55 53 48 4f 52 54 20 74 6f 20 43  m CK_USHORT to C
2a20: 4b 5f 55 4c 4f 4e 47 20 66 6f 72 0a 20 20 20 2a  K_ULONG for.   *
2a30: 20 76 32 2e 30 20 2a 2f 0a 20 20 43 4b 5f 55 4c   v2.0 */.  CK_UL
2a40: 4f 4e 47 20 20 20 20 20 20 75 6c 44 65 76 69 63  ONG      ulDevic
2a50: 65 45 72 72 6f 72 3b 20 20 2f 2a 20 64 65 76 69  eError;  /* devi
2a60: 63 65 2d 64 65 70 65 6e 64 65 6e 74 20 65 72 72  ce-dependent err
2a70: 6f 72 20 63 6f 64 65 20 2a 2f 0a 7d 20 43 4b 5f  or code */.} CK_
2a80: 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 3b 0a 0a 2f  SESSION_INFO;../
2a90: 2a 20 54 68 65 20 66 6c 61 67 73 20 61 72 65 20  * The flags are 
2aa0: 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 66  defined in the f
2ab0: 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 3a 0a  ollowing table:.
2ac0: 20 2a 20 20 20 20 20 20 42 69 74 20 46 6c 61 67   *      Bit Flag
2ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2ae0: 4d 61 73 6b 20 20 20 20 20 20 20 20 4d 65 61 6e  Mask        Mean
2af0: 69 6e 67 0a 20 2a 2f 0a 23 64 65 66 69 6e 65 20  ing. */.#define 
2b00: 43 4b 46 5f 52 57 5f 53 45 53 53 49 4f 4e 20 20  CKF_RW_SESSION  
2b10: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
2b20: 30 32 20 20 2f 2a 20 73 65 73 73 69 6f 6e 20 69  02  /* session i
2b30: 73 20 72 2f 77 20 2a 2f 0a 23 64 65 66 69 6e 65  s r/w */.#define
2b40: 20 43 4b 46 5f 53 45 52 49 41 4c 5f 53 45 53 53   CKF_SERIAL_SESS
2b50: 49 4f 4e 20 20 20 20 20 20 30 78 30 30 30 30 30  ION      0x00000
2b60: 30 30 34 20 20 2f 2a 20 6e 6f 20 70 61 72 61 6c  004  /* no paral
2b70: 6c 65 6c 20 2a 2f 0a 0a 74 79 70 65 64 65 66 20  lel */..typedef 
2b80: 43 4b 5f 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 20  CK_SESSION_INFO 
2b90: 43 4b 5f 50 54 52 20 43 4b 5f 53 45 53 53 49 4f  CK_PTR CK_SESSIO
2ba0: 4e 5f 49 4e 46 4f 5f 50 54 52 3b 0a 0a 0a 2f 2a  N_INFO_PTR;.../*
2bb0: 20 43 4b 5f 4f 42 4a 45 43 54 5f 48 41 4e 44 4c   CK_OBJECT_HANDL
2bc0: 45 20 69 73 20 61 20 74 6f 6b 65 6e 2d 73 70 65  E is a token-spe
2bd0: 63 69 66 69 63 20 69 64 65 6e 74 69 66 69 65 72  cific identifier
2be0: 20 66 6f 72 20 61 6e 0a 20 2a 20 6f 62 6a 65 63   for an. * objec
2bf0: 74 20 20 2a 2f 0a 74 79 70 65 64 65 66 20 43 4b  t  */.typedef CK
2c00: 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20  _ULONG          
2c10: 43 4b 5f 4f 42 4a 45 43 54 5f 48 41 4e 44 4c 45  CK_OBJECT_HANDLE
2c20: 3b 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 4f 42  ;..typedef CK_OB
2c30: 4a 45 43 54 5f 48 41 4e 44 4c 45 20 43 4b 5f 50  JECT_HANDLE CK_P
2c40: 54 52 20 43 4b 5f 4f 42 4a 45 43 54 5f 48 41 4e  TR CK_OBJECT_HAN
2c50: 44 4c 45 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b  DLE_PTR;.../* CK
2c60: 5f 4f 42 4a 45 43 54 5f 43 4c 41 53 53 20 69 73  _OBJECT_CLASS is
2c70: 20 61 20 76 61 6c 75 65 20 74 68 61 74 20 69 64   a value that id
2c80: 65 6e 74 69 66 69 65 73 20 74 68 65 20 63 6c 61  entifies the cla
2c90: 73 73 65 73 20 28 6f 72 0a 20 2a 20 74 79 70 65  sses (or. * type
2ca0: 73 29 20 6f 66 20 6f 62 6a 65 63 74 73 20 74 68  s) of objects th
2cb0: 61 74 20 43 72 79 70 74 6f 6b 69 20 72 65 63 6f  at Cryptoki reco
2cc0: 67 6e 69 7a 65 73 2e 20 20 49 74 20 69 73 20 64  gnizes.  It is d
2cd0: 65 66 69 6e 65 64 0a 20 2a 20 61 73 20 66 6f 6c  efined. * as fol
2ce0: 6c 6f 77 73 3a 20 2a 2f 0a 2f 2a 20 43 4b 5f 4f  lows: */./* CK_O
2cf0: 42 4a 45 43 54 5f 43 4c 41 53 53 20 77 61 73 20  BJECT_CLASS was 
2d00: 63 68 61 6e 67 65 64 20 66 72 6f 6d 20 43 4b 5f  changed from CK_
2d10: 55 53 48 4f 52 54 20 74 6f 20 43 4b 5f 55 4c 4f  USHORT to CK_ULO
2d20: 4e 47 20 66 6f 72 0a 20 2a 20 76 32 2e 30 20 2a  NG for. * v2.0 *
2d30: 2f 0a 74 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f  /.typedef CK_ULO
2d40: 4e 47 20 20 20 20 20 20 20 20 20 20 43 4b 5f 4f  NG          CK_O
2d50: 42 4a 45 43 54 5f 43 4c 41 53 53 3b 0a 0a 2f 2a  BJECT_CLASS;../*
2d60: 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63   The following c
2d70: 6c 61 73 73 65 73 20 6f 66 20 6f 62 6a 65 63 74  lasses of object
2d80: 73 20 61 72 65 20 64 65 66 69 6e 65 64 3a 20 2a  s are defined: *
2d90: 2f 0a 2f 2a 20 43 4b 4f 5f 48 57 5f 46 45 41 54  /./* CKO_HW_FEAT
2da0: 55 52 45 20 69 73 20 6e 65 77 20 66 6f 72 20 76  URE is new for v
2db0: 32 2e 31 30 20 2a 2f 0a 2f 2a 20 43 4b 4f 5f 44  2.10 */./* CKO_D
2dc0: 4f 4d 41 49 4e 5f 50 41 52 41 4d 45 54 45 52 53  OMAIN_PARAMETERS
2dd0: 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32 2e 31   is new for v2.1
2de0: 31 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4f  1 */.#define CKO
2df0: 5f 44 41 54 41 20 20 20 20 20 20 20 20 20 20 20  _DATA           
2e00: 20 20 20 30 78 30 30 30 30 30 30 30 30 0a 23 64     0x00000000.#d
2e10: 65 66 69 6e 65 20 43 4b 4f 5f 43 45 52 54 49 46  efine CKO_CERTIF
2e20: 49 43 41 54 45 20 20 20 20 20 20 20 30 78 30 30  ICATE       0x00
2e30: 30 30 30 30 30 31 0a 23 64 65 66 69 6e 65 20 43  000001.#define C
2e40: 4b 4f 5f 50 55 42 4c 49 43 5f 4b 45 59 20 20 20  KO_PUBLIC_KEY   
2e50: 20 20 20 20 20 30 78 30 30 30 30 30 30 30 32 0a       0x00000002.
2e60: 23 64 65 66 69 6e 65 20 43 4b 4f 5f 50 52 49 56  #define CKO_PRIV
2e70: 41 54 45 5f 4b 45 59 20 20 20 20 20 20 20 30 78  ATE_KEY       0x
2e80: 30 30 30 30 30 30 30 33 0a 23 64 65 66 69 6e 65  00000003.#define
2e90: 20 43 4b 4f 5f 53 45 43 52 45 54 5f 4b 45 59 20   CKO_SECRET_KEY 
2ea0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30         0x0000000
2eb0: 34 0a 23 64 65 66 69 6e 65 20 43 4b 4f 5f 48 57  4.#define CKO_HW
2ec0: 5f 46 45 41 54 55 52 45 20 20 20 20 20 20 20 20  _FEATURE        
2ed0: 30 78 30 30 30 30 30 30 30 35 0a 23 64 65 66 69  0x00000005.#defi
2ee0: 6e 65 20 43 4b 4f 5f 44 4f 4d 41 49 4e 5f 50 41  ne CKO_DOMAIN_PA
2ef0: 52 41 4d 45 54 45 52 53 20 30 78 30 30 30 30 30  RAMETERS 0x00000
2f00: 30 30 36 0a 23 64 65 66 69 6e 65 20 43 4b 4f 5f  006.#define CKO_
2f10: 56 45 4e 44 4f 52 5f 44 45 46 49 4e 45 44 20 20  VENDOR_DEFINED  
2f20: 20 20 30 78 38 30 30 30 30 30 30 30 0a 0a 74 79    0x80000000..ty
2f30: 70 65 64 65 66 20 43 4b 5f 4f 42 4a 45 43 54 5f  pedef CK_OBJECT_
2f40: 43 4c 41 53 53 20 43 4b 5f 50 54 52 20 43 4b 5f  CLASS CK_PTR CK_
2f50: 4f 42 4a 45 43 54 5f 43 4c 41 53 53 5f 50 54 52  OBJECT_CLASS_PTR
2f60: 3b 0a 0a 2f 2a 20 43 4b 5f 48 57 5f 46 45 41 54  ;../* CK_HW_FEAT
2f70: 55 52 45 5f 54 59 50 45 20 69 73 20 6e 65 77 20  URE_TYPE is new 
2f80: 66 6f 72 20 76 32 2e 31 30 2e 20 43 4b 5f 48 57  for v2.10. CK_HW
2f90: 5f 46 45 41 54 55 52 45 5f 54 59 50 45 20 69 73  _FEATURE_TYPE is
2fa0: 20 61 0a 20 2a 20 76 61 6c 75 65 20 74 68 61 74   a. * value that
2fb0: 20 69 64 65 6e 74 69 66 69 65 73 20 74 68 65 20   identifies the 
2fc0: 68 61 72 64 77 61 72 65 20 66 65 61 74 75 72 65  hardware feature
2fd0: 20 74 79 70 65 20 6f 66 20 61 6e 20 6f 62 6a 65   type of an obje
2fe0: 63 74 0a 20 2a 20 77 69 74 68 20 43 4b 5f 4f 42  ct. * with CK_OB
2ff0: 4a 45 43 54 5f 43 4c 41 53 53 20 65 71 75 61 6c  JECT_CLASS equal
3000: 20 74 6f 20 43 4b 4f 5f 48 57 5f 46 45 41 54 55   to CKO_HW_FEATU
3010: 52 45 2e 20 2a 2f 0a 74 79 70 65 64 65 66 20 43  RE. */.typedef C
3020: 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20  K_ULONG         
3030: 20 43 4b 5f 48 57 5f 46 45 41 54 55 52 45 5f 54   CK_HW_FEATURE_T
3040: 59 50 45 3b 0a 20 0a 2f 2a 20 54 68 65 20 66 6f  YPE;. ./* The fo
3050: 6c 6c 6f 77 69 6e 67 20 68 61 72 64 77 61 72 65  llowing hardware
3060: 20 66 65 61 74 75 72 65 20 74 79 70 65 73 20 61   feature types a
3070: 72 65 20 64 65 66 69 6e 65 64 20 2a 2f 0a 23 64  re defined */.#d
3080: 65 66 69 6e 65 20 43 4b 48 5f 4d 4f 4e 4f 54 4f  efine CKH_MONOTO
3090: 4e 49 43 5f 43 4f 55 4e 54 45 52 20 20 30 78 30  NIC_COUNTER  0x0
30a0: 30 30 30 30 30 30 31 0a 23 64 65 66 69 6e 65 20  0000001.#define 
30b0: 43 4b 48 5f 43 4c 4f 43 4b 20 20 20 20 20 20 20  CKH_CLOCK       
30c0: 20 20 20 20 30 78 30 30 30 30 30 30 30 32 0a 23      0x00000002.#
30d0: 64 65 66 69 6e 65 20 43 4b 48 5f 56 45 4e 44 4f  define CKH_VENDO
30e0: 52 5f 44 45 46 49 4e 45 44 20 20 30 78 38 30 30  R_DEFINED  0x800
30f0: 30 30 30 30 30 0a 0a 2f 2a 20 43 4b 5f 4b 45 59  00000../* CK_KEY
3100: 5f 54 59 50 45 20 69 73 20 61 20 76 61 6c 75 65  _TYPE is a value
3110: 20 74 68 61 74 20 69 64 65 6e 74 69 66 69 65 73   that identifies
3120: 20 61 20 6b 65 79 20 74 79 70 65 20 2a 2f 0a 2f   a key type */./
3130: 2a 20 43 4b 5f 4b 45 59 5f 54 59 50 45 20 77 61  * CK_KEY_TYPE wa
3140: 73 20 63 68 61 6e 67 65 64 20 66 72 6f 6d 20 43  s changed from C
3150: 4b 5f 55 53 48 4f 52 54 20 74 6f 20 43 4b 5f 55  K_USHORT to CK_U
3160: 4c 4f 4e 47 20 66 6f 72 20 76 32 2e 30 20 2a 2f  LONG for v2.0 */
3170: 0a 74 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f 4e  .typedef CK_ULON
3180: 47 20 20 20 20 20 20 20 20 20 20 43 4b 5f 4b 45  G          CK_KE
3190: 59 5f 54 59 50 45 3b 0a 0a 2f 2a 20 74 68 65 20  Y_TYPE;../* the 
31a0: 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 20 74 79  following key ty
31b0: 70 65 73 20 61 72 65 20 64 65 66 69 6e 65 64 3a  pes are defined:
31c0: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f   */.#define CKK_
31d0: 52 53 41 20 20 20 20 20 20 20 20 20 20 20 20 20  RSA             
31e0: 30 78 30 30 30 30 30 30 30 30 0a 23 64 65 66 69  0x00000000.#defi
31f0: 6e 65 20 43 4b 4b 5f 44 53 41 20 20 20 20 20 20  ne CKK_DSA      
3200: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30         0x0000000
3210: 31 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f 44 48  1.#define CKK_DH
3220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
3230: 30 30 30 30 30 30 30 32 0a 0a 2f 2a 20 43 4b 4b  00000002../* CKK
3240: 5f 45 43 44 53 41 20 61 6e 64 20 43 4b 4b 5f 4b  _ECDSA and CKK_K
3250: 45 41 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76  EA are new for v
3260: 32 2e 30 20 2a 2f 0a 2f 2a 20 43 4b 4b 5f 45 43  2.0 */./* CKK_EC
3270: 44 53 41 20 69 73 20 64 65 70 72 65 63 61 74 65  DSA is deprecate
3280: 64 20 69 6e 20 76 32 2e 31 31 2c 20 43 4b 4b 5f  d in v2.11, CKK_
3290: 45 43 20 69 73 20 70 72 65 66 65 72 72 65 64 2e  EC is preferred.
32a0: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f   */.#define CKK_
32b0: 45 43 44 53 41 20 20 20 20 20 20 20 20 20 20 20  ECDSA           
32c0: 30 78 30 30 30 30 30 30 30 33 0a 23 64 65 66 69  0x00000003.#defi
32d0: 6e 65 20 43 4b 4b 5f 45 43 20 20 20 20 20 20 20  ne CKK_EC       
32e0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30         0x0000000
32f0: 33 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f 58 39  3.#define CKK_X9
3300: 5f 34 32 5f 44 48 20 20 20 20 20 20 20 20 30 78  _42_DH        0x
3310: 30 30 30 30 30 30 30 34 0a 23 64 65 66 69 6e 65  00000004.#define
3320: 20 43 4b 4b 5f 4b 45 41 20 20 20 20 20 20 20 20   CKK_KEA        
3330: 20 20 20 20 20 30 78 30 30 30 30 30 30 30 35 0a       0x00000005.
3340: 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f 47 45 4e  .#define CKK_GEN
3350: 45 52 49 43 5f 53 45 43 52 45 54 20 20 30 78 30  ERIC_SECRET  0x0
3360: 30 30 30 30 30 31 30 0a 23 64 65 66 69 6e 65 20  0000010.#define 
3370: 43 4b 4b 5f 52 43 32 20 20 20 20 20 20 20 20 20  CKK_RC2         
3380: 20 20 20 20 30 78 30 30 30 30 30 30 31 31 0a 23      0x00000011.#
3390: 64 65 66 69 6e 65 20 43 4b 4b 5f 52 43 34 20 20  define CKK_RC4  
33a0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
33b0: 30 30 30 31 32 0a 23 64 65 66 69 6e 65 20 43 4b  00012.#define CK
33c0: 4b 5f 44 45 53 20 20 20 20 20 20 20 20 20 20 20  K_DES           
33d0: 20 20 30 78 30 30 30 30 30 30 31 33 0a 23 64 65    0x00000013.#de
33e0: 66 69 6e 65 20 43 4b 4b 5f 44 45 53 32 20 20 20  fine CKK_DES2   
33f0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
3400: 30 31 34 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f  014.#define CKK_
3410: 44 45 53 33 20 20 20 20 20 20 20 20 20 20 20 20  DES3            
3420: 30 78 30 30 30 30 30 30 31 35 0a 0a 2f 2a 20 61  0x00000015../* a
3430: 6c 6c 20 74 68 65 73 65 20 6b 65 79 20 74 79 70  ll these key typ
3440: 65 73 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76  es are new for v
3450: 32 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  2.0 */.#define C
3460: 4b 4b 5f 43 41 53 54 20 20 20 20 20 20 20 20 20  KK_CAST         
3470: 20 20 20 30 78 30 30 30 30 30 30 31 36 0a 23 64     0x00000016.#d
3480: 65 66 69 6e 65 20 43 4b 4b 5f 43 41 53 54 33 20  efine CKK_CAST3 
3490: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
34a0: 30 30 31 37 0a 2f 2a 20 43 4b 4b 5f 43 41 53 54  0017./* CKK_CAST
34b0: 35 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20  5 is deprecated 
34c0: 69 6e 20 76 32 2e 31 31 2c 20 43 4b 4b 5f 43 41  in v2.11, CKK_CA
34d0: 53 54 31 32 38 20 69 73 20 70 72 65 66 65 72 72  ST128 is preferr
34e0: 65 64 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  ed. */.#define C
34f0: 4b 4b 5f 43 41 53 54 35 20 20 20 20 20 20 20 20  KK_CAST5        
3500: 20 20 20 30 78 30 30 30 30 30 30 31 38 0a 23 64     0x00000018.#d
3510: 65 66 69 6e 65 20 43 4b 4b 5f 43 41 53 54 31 32  efine CKK_CAST12
3520: 38 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30  8         0x0000
3530: 30 30 31 38 0a 23 64 65 66 69 6e 65 20 43 4b 4b  0018.#define CKK
3540: 5f 52 43 35 20 20 20 20 20 20 20 20 20 20 20 20  _RC5            
3550: 20 30 78 30 30 30 30 30 30 31 39 0a 23 64 65 66   0x00000019.#def
3560: 69 6e 65 20 43 4b 4b 5f 49 44 45 41 20 20 20 20  ine CKK_IDEA    
3570: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
3580: 31 41 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f 53  1A.#define CKK_S
3590: 4b 49 50 4a 41 43 4b 20 20 20 20 20 20 20 20 30  KIPJACK        0
35a0: 78 30 30 30 30 30 30 31 42 0a 23 64 65 66 69 6e  x0000001B.#defin
35b0: 65 20 43 4b 4b 5f 42 41 54 4f 4e 20 20 20 20 20  e CKK_BATON     
35c0: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 31 43        0x0000001C
35d0: 0a 23 64 65 66 69 6e 65 20 43 4b 4b 5f 4a 55 4e  .#define CKK_JUN
35e0: 49 50 45 52 20 20 20 20 20 20 20 20 20 30 78 30  IPER         0x0
35f0: 30 30 30 30 30 31 44 0a 23 64 65 66 69 6e 65 20  000001D.#define 
3600: 43 4b 4b 5f 43 44 4d 46 20 20 20 20 20 20 20 20  CKK_CDMF        
3610: 20 20 20 20 30 78 30 30 30 30 30 30 31 45 0a 23      0x0000001E.#
3620: 64 65 66 69 6e 65 20 43 4b 4b 5f 41 45 53 20 20  define CKK_AES  
3630: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
3640: 30 30 30 31 46 0a 0a 23 64 65 66 69 6e 65 20 43  0001F..#define C
3650: 4b 4b 5f 56 45 4e 44 4f 52 5f 44 45 46 49 4e 45  KK_VENDOR_DEFINE
3660: 44 20 20 30 78 38 30 30 30 30 30 30 30 0a 0a 0a  D  0x80000000...
3670: 2f 2a 20 43 4b 5f 43 45 52 54 49 46 49 43 41 54  /* CK_CERTIFICAT
3680: 45 5f 54 59 50 45 20 69 73 20 61 20 76 61 6c 75  E_TYPE is a valu
3690: 65 20 74 68 61 74 20 69 64 65 6e 74 69 66 69 65  e that identifie
36a0: 73 20 61 20 63 65 72 74 69 66 69 63 61 74 65 0a  s a certificate.
36b0: 20 2a 20 74 79 70 65 20 2a 2f 0a 2f 2a 20 43 4b   * type */./* CK
36c0: 5f 43 45 52 54 49 46 49 43 41 54 45 5f 54 59 50  _CERTIFICATE_TYP
36d0: 45 20 77 61 73 20 63 68 61 6e 67 65 64 20 66 72  E was changed fr
36e0: 6f 6d 20 43 4b 5f 55 53 48 4f 52 54 20 74 6f 20  om CK_USHORT to 
36f0: 43 4b 5f 55 4c 4f 4e 47 0a 20 2a 20 66 6f 72 20  CK_ULONG. * for 
3700: 76 32 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66 20  v2.0 */.typedef 
3710: 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20  CK_ULONG        
3720: 20 20 43 4b 5f 43 45 52 54 49 46 49 43 41 54 45    CK_CERTIFICATE
3730: 5f 54 59 50 45 3b 0a 0a 2f 2a 20 54 68 65 20 66  _TYPE;../* The f
3740: 6f 6c 6c 6f 77 69 6e 67 20 63 65 72 74 69 66 69  ollowing certifi
3750: 63 61 74 65 20 74 79 70 65 73 20 61 72 65 20 64  cate types are d
3760: 65 66 69 6e 65 64 3a 20 2a 2f 0a 2f 2a 20 43 4b  efined: */./* CK
3770: 43 5f 58 5f 35 30 39 5f 41 54 54 52 5f 43 45 52  C_X_509_ATTR_CER
3780: 54 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32 2e  T is new for v2.
3790: 31 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  10 */.#define CK
37a0: 43 5f 58 5f 35 30 39 20 20 20 20 20 20 20 20 20  C_X_509         
37b0: 20 20 30 78 30 30 30 30 30 30 30 30 0a 23 64 65    0x00000000.#de
37c0: 66 69 6e 65 20 43 4b 43 5f 58 5f 35 30 39 5f 41  fine CKC_X_509_A
37d0: 54 54 52 5f 43 45 52 54 20 30 78 30 30 30 30 30  TTR_CERT 0x00000
37e0: 30 30 31 0a 23 64 65 66 69 6e 65 20 43 4b 43 5f  001.#define CKC_
37f0: 56 45 4e 44 4f 52 5f 44 45 46 49 4e 45 44 20 20  VENDOR_DEFINED  
3800: 30 78 38 30 30 30 30 30 30 30 0a 0a 0a 2f 2a 20  0x80000000.../* 
3810: 43 4b 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50  CK_ATTRIBUTE_TYP
3820: 45 20 69 73 20 61 20 76 61 6c 75 65 20 74 68 61  E is a value tha
3830: 74 20 69 64 65 6e 74 69 66 69 65 73 20 61 6e 20  t identifies an 
3840: 61 74 74 72 69 62 75 74 65 0a 20 2a 20 74 79 70  attribute. * typ
3850: 65 20 2a 2f 0a 2f 2a 20 43 4b 5f 41 54 54 52 49  e */./* CK_ATTRI
3860: 42 55 54 45 5f 54 59 50 45 20 77 61 73 20 63 68  BUTE_TYPE was ch
3870: 61 6e 67 65 64 20 66 72 6f 6d 20 43 4b 5f 55 53  anged from CK_US
3880: 48 4f 52 54 20 74 6f 20 43 4b 5f 55 4c 4f 4e 47  HORT to CK_ULONG
3890: 20 66 6f 72 0a 20 2a 20 76 32 2e 30 20 2a 2f 0a   for. * v2.0 */.
38a0: 74 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f 4e 47  typedef CK_ULONG
38b0: 20 20 20 20 20 20 20 20 20 20 43 4b 5f 41 54 54            CK_ATT
38c0: 52 49 42 55 54 45 5f 54 59 50 45 3b 0a 0a 2f 2a  RIBUTE_TYPE;../*
38d0: 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61   The following a
38e0: 74 74 72 69 62 75 74 65 20 74 79 70 65 73 20 61  ttribute types a
38f0: 72 65 20 64 65 66 69 6e 65 64 3a 20 2a 2f 0a 23  re defined: */.#
3900: 64 65 66 69 6e 65 20 43 4b 41 5f 43 4c 41 53 53  define CKA_CLASS
3910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
3920: 30 30 30 30 30 30 30 30 0a 23 64 65 66 69 6e 65  00000000.#define
3930: 20 43 4b 41 5f 54 4f 4b 45 4e 20 20 20 20 20 20   CKA_TOKEN      
3940: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
3950: 30 31 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 50  01.#define CKA_P
3960: 52 49 56 41 54 45 20 20 20 20 20 20 20 20 20 20  RIVATE          
3970: 20 20 30 78 30 30 30 30 30 30 30 32 0a 23 64 65    0x00000002.#de
3980: 66 69 6e 65 20 43 4b 41 5f 4c 41 42 45 4c 20 20  fine CKA_LABEL  
3990: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
39a0: 30 30 30 30 30 33 0a 23 64 65 66 69 6e 65 20 43  000003.#define C
39b0: 4b 41 5f 41 50 50 4c 49 43 41 54 49 4f 4e 20 20  KA_APPLICATION  
39c0: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 31 30        0x00000010
39d0: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 56 41 4c  .#define CKA_VAL
39e0: 55 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20  UE              
39f0: 30 78 30 30 30 30 30 30 31 31 0a 0a 2f 2a 20 43  0x00000011../* C
3a00: 4b 41 5f 4f 42 4a 45 43 54 5f 49 44 20 69 73 20  KA_OBJECT_ID is 
3a10: 6e 65 77 20 66 6f 72 20 76 32 2e 31 30 20 2a 2f  new for v2.10 */
3a20: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 4f 42 4a  .#define CKA_OBJ
3a30: 45 43 54 5f 49 44 20 20 20 20 20 20 20 20 20 20  ECT_ID          
3a40: 30 78 30 30 30 30 30 30 31 32 0a 0a 23 64 65 66  0x00000012..#def
3a50: 69 6e 65 20 43 4b 41 5f 43 45 52 54 49 46 49 43  ine CKA_CERTIFIC
3a60: 41 54 45 5f 54 59 50 45 20 20 20 30 78 30 30 30  ATE_TYPE   0x000
3a70: 30 30 30 38 30 0a 23 64 65 66 69 6e 65 20 43 4b  00080.#define CK
3a80: 41 5f 49 53 53 55 45 52 20 20 20 20 20 20 20 20  A_ISSUER        
3a90: 20 20 20 20 20 30 78 30 30 30 30 30 30 38 31 0a       0x00000081.
3aa0: 23 64 65 66 69 6e 65 20 43 4b 41 5f 53 45 52 49  #define CKA_SERI
3ab0: 41 4c 5f 4e 55 4d 42 45 52 20 20 20 20 20 20 30  AL_NUMBER      0
3ac0: 78 30 30 30 30 30 30 38 32 0a 0a 2f 2a 20 43 4b  x00000082../* CK
3ad0: 41 5f 41 43 5f 49 53 53 55 45 52 2c 20 43 4b 41  A_AC_ISSUER, CKA
3ae0: 5f 4f 57 4e 45 52 2c 20 61 6e 64 20 43 4b 41 5f  _OWNER, and CKA_
3af0: 41 54 54 52 5f 54 59 50 45 53 20 61 72 65 20 6e  ATTR_TYPES are n
3b00: 65 77 20 0a 20 2a 20 66 6f 72 20 76 32 2e 31 30  ew . * for v2.10
3b10: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f   */.#define CKA_
3b20: 41 43 5f 49 53 53 55 45 52 20 20 20 20 20 20 20  AC_ISSUER       
3b30: 20 20 20 30 78 30 30 30 30 30 30 38 33 0a 23 64     0x00000083.#d
3b40: 65 66 69 6e 65 20 43 4b 41 5f 4f 57 4e 45 52 20  efine CKA_OWNER 
3b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
3b60: 30 30 30 30 30 38 34 0a 23 64 65 66 69 6e 65 20  0000084.#define 
3b70: 43 4b 41 5f 41 54 54 52 5f 54 59 50 45 53 20 20  CKA_ATTR_TYPES  
3b80: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 38         0x0000008
3b90: 35 0a 0a 2f 2a 20 43 4b 41 5f 54 52 55 53 54 45  5../* CKA_TRUSTE
3ba0: 44 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32 2e  D is new for v2.
3bb0: 31 31 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  11 */.#define CK
3bc0: 41 5f 54 52 55 53 54 45 44 20 20 20 20 20 20 20  A_TRUSTED       
3bd0: 20 20 20 20 20 30 78 30 30 30 30 30 30 38 36 0a       0x00000086.
3be0: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 4b 45 59  .#define CKA_KEY
3bf0: 5f 54 59 50 45 20 20 20 20 20 20 20 20 20 20 20  _TYPE           
3c00: 30 78 30 30 30 30 30 31 30 30 0a 23 64 65 66 69  0x00000100.#defi
3c10: 6e 65 20 43 4b 41 5f 53 55 42 4a 45 43 54 20 20  ne CKA_SUBJECT  
3c20: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
3c30: 30 31 30 31 0a 23 64 65 66 69 6e 65 20 43 4b 41  0101.#define CKA
3c40: 5f 49 44 20 20 20 20 20 20 20 20 20 20 20 20 20  _ID             
3c50: 20 20 20 20 30 78 30 30 30 30 30 31 30 32 0a 23      0x00000102.#
3c60: 64 65 66 69 6e 65 20 43 4b 41 5f 53 45 4e 53 49  define CKA_SENSI
3c70: 54 49 56 45 20 20 20 20 20 20 20 20 20 20 30 78  TIVE          0x
3c80: 30 30 30 30 30 31 30 33 0a 23 64 65 66 69 6e 65  00000103.#define
3c90: 20 43 4b 41 5f 45 4e 43 52 59 50 54 20 20 20 20   CKA_ENCRYPT    
3ca0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
3cb0: 30 34 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 44  04.#define CKA_D
3cc0: 45 43 52 59 50 54 20 20 20 20 20 20 20 20 20 20  ECRYPT          
3cd0: 20 20 30 78 30 30 30 30 30 31 30 35 0a 23 64 65    0x00000105.#de
3ce0: 66 69 6e 65 20 43 4b 41 5f 57 52 41 50 20 20 20  fine CKA_WRAP   
3cf0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
3d00: 30 30 30 31 30 36 0a 23 64 65 66 69 6e 65 20 43  000106.#define C
3d10: 4b 41 5f 55 4e 57 52 41 50 20 20 20 20 20 20 20  KA_UNWRAP       
3d20: 20 20 20 20 20 20 30 78 30 30 30 30 30 31 30 37        0x00000107
3d30: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 53 49 47  .#define CKA_SIG
3d40: 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  N               
3d50: 30 78 30 30 30 30 30 31 30 38 0a 23 64 65 66 69  0x00000108.#defi
3d60: 6e 65 20 43 4b 41 5f 53 49 47 4e 5f 52 45 43 4f  ne CKA_SIGN_RECO
3d70: 56 45 52 20 20 20 20 20 20 20 30 78 30 30 30 30  VER       0x0000
3d80: 30 31 30 39 0a 23 64 65 66 69 6e 65 20 43 4b 41  0109.#define CKA
3d90: 5f 56 45 52 49 46 59 20 20 20 20 20 20 20 20 20  _VERIFY         
3da0: 20 20 20 20 30 78 30 30 30 30 30 31 30 41 0a 23      0x0000010A.#
3db0: 64 65 66 69 6e 65 20 43 4b 41 5f 56 45 52 49 46  define CKA_VERIF
3dc0: 59 5f 52 45 43 4f 56 45 52 20 20 20 20 20 30 78  Y_RECOVER     0x
3dd0: 30 30 30 30 30 31 30 42 0a 23 64 65 66 69 6e 65  0000010B.#define
3de0: 20 43 4b 41 5f 44 45 52 49 56 45 20 20 20 20 20   CKA_DERIVE     
3df0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
3e00: 30 43 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 53  0C.#define CKA_S
3e10: 54 41 52 54 5f 44 41 54 45 20 20 20 20 20 20 20  TART_DATE       
3e20: 20 20 30 78 30 30 30 30 30 31 31 30 0a 23 64 65    0x00000110.#de
3e30: 66 69 6e 65 20 43 4b 41 5f 45 4e 44 5f 44 41 54  fine CKA_END_DAT
3e40: 45 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30  E           0x00
3e50: 30 30 30 31 31 31 0a 23 64 65 66 69 6e 65 20 43  000111.#define C
3e60: 4b 41 5f 4d 4f 44 55 4c 55 53 20 20 20 20 20 20  KA_MODULUS      
3e70: 20 20 20 20 20 20 30 78 30 30 30 30 30 31 32 30        0x00000120
3e80: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 4d 4f 44  .#define CKA_MOD
3e90: 55 4c 55 53 5f 42 49 54 53 20 20 20 20 20 20 20  ULUS_BITS       
3ea0: 30 78 30 30 30 30 30 31 32 31 0a 23 64 65 66 69  0x00000121.#defi
3eb0: 6e 65 20 43 4b 41 5f 50 55 42 4c 49 43 5f 45 58  ne CKA_PUBLIC_EX
3ec0: 50 4f 4e 45 4e 54 20 20 20 20 30 78 30 30 30 30  PONENT    0x0000
3ed0: 30 31 32 32 0a 23 64 65 66 69 6e 65 20 43 4b 41  0122.#define CKA
3ee0: 5f 50 52 49 56 41 54 45 5f 45 58 50 4f 4e 45 4e  _PRIVATE_EXPONEN
3ef0: 54 20 20 20 30 78 30 30 30 30 30 31 32 33 0a 23  T   0x00000123.#
3f00: 64 65 66 69 6e 65 20 43 4b 41 5f 50 52 49 4d 45  define CKA_PRIME
3f10: 5f 31 20 20 20 20 20 20 20 20 20 20 20 20 30 78  _1            0x
3f20: 30 30 30 30 30 31 32 34 0a 23 64 65 66 69 6e 65  00000124.#define
3f30: 20 43 4b 41 5f 50 52 49 4d 45 5f 32 20 20 20 20   CKA_PRIME_2    
3f40: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
3f50: 32 35 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 45  25.#define CKA_E
3f60: 58 50 4f 4e 45 4e 54 5f 31 20 20 20 20 20 20 20  XPONENT_1       
3f70: 20 20 30 78 30 30 30 30 30 31 32 36 0a 23 64 65    0x00000126.#de
3f80: 66 69 6e 65 20 43 4b 41 5f 45 58 50 4f 4e 45 4e  fine CKA_EXPONEN
3f90: 54 5f 32 20 20 20 20 20 20 20 20 20 30 78 30 30  T_2         0x00
3fa0: 30 30 30 31 32 37 0a 23 64 65 66 69 6e 65 20 43  000127.#define C
3fb0: 4b 41 5f 43 4f 45 46 46 49 43 49 45 4e 54 20 20  KA_COEFFICIENT  
3fc0: 20 20 20 20 20 20 30 78 30 30 30 30 30 31 32 38        0x00000128
3fd0: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 50 52 49  .#define CKA_PRI
3fe0: 4d 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ME              
3ff0: 30 78 30 30 30 30 30 31 33 30 0a 23 64 65 66 69  0x00000130.#defi
4000: 6e 65 20 43 4b 41 5f 53 55 42 50 52 49 4d 45 20  ne CKA_SUBPRIME 
4010: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
4020: 30 31 33 31 0a 23 64 65 66 69 6e 65 20 43 4b 41  0131.#define CKA
4030: 5f 42 41 53 45 20 20 20 20 20 20 20 20 20 20 20  _BASE           
4040: 20 20 20 20 30 78 30 30 30 30 30 31 33 32 0a 0a      0x00000132..
4050: 2f 2a 20 43 4b 41 5f 50 52 49 4d 45 5f 42 49 54  /* CKA_PRIME_BIT
4060: 53 20 61 6e 64 20 43 4b 41 5f 53 55 42 5f 50 52  S and CKA_SUB_PR
4070: 49 4d 45 5f 42 49 54 53 20 61 72 65 20 6e 65 77  IME_BITS are new
4080: 20 66 6f 72 20 76 32 2e 31 31 20 2a 2f 0a 23 64   for v2.11 */.#d
4090: 65 66 69 6e 65 20 43 4b 41 5f 50 52 49 4d 45 5f  efine CKA_PRIME_
40a0: 42 49 54 53 20 20 20 20 20 20 20 20 20 30 78 30  BITS         0x0
40b0: 30 30 30 30 31 33 33 0a 23 64 65 66 69 6e 65 20  0000133.#define 
40c0: 43 4b 41 5f 53 55 42 5f 50 52 49 4d 45 5f 42 49  CKA_SUB_PRIME_BI
40d0: 54 53 20 20 20 20 20 30 78 30 30 30 30 30 31 33  TS     0x0000013
40e0: 34 0a 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 56  4..#define CKA_V
40f0: 41 4c 55 45 5f 42 49 54 53 20 20 20 20 20 20 20  ALUE_BITS       
4100: 20 20 30 78 30 30 30 30 30 31 36 30 0a 23 64 65    0x00000160.#de
4110: 66 69 6e 65 20 43 4b 41 5f 56 41 4c 55 45 5f 4c  fine CKA_VALUE_L
4120: 45 4e 20 20 20 20 20 20 20 20 20 20 30 78 30 30  EN          0x00
4130: 30 30 30 31 36 31 0a 0a 2f 2a 20 43 4b 41 5f 45  000161../* CKA_E
4140: 58 54 52 41 43 54 41 42 4c 45 2c 20 43 4b 41 5f  XTRACTABLE, CKA_
4150: 4c 4f 43 41 4c 2c 20 43 4b 41 5f 4e 45 56 45 52  LOCAL, CKA_NEVER
4160: 5f 45 58 54 52 41 43 54 41 42 4c 45 2c 0a 20 2a  _EXTRACTABLE,. *
4170: 20 43 4b 41 5f 41 4c 57 41 59 53 5f 53 45 4e 53   CKA_ALWAYS_SENS
4180: 49 54 49 56 45 2c 20 43 4b 41 5f 4d 4f 44 49 46  ITIVE, CKA_MODIF
4190: 49 41 42 4c 45 2c 20 43 4b 41 5f 45 43 44 53 41  IABLE, CKA_ECDSA
41a0: 5f 50 41 52 41 4d 53 2c 0a 20 2a 20 61 6e 64 20  _PARAMS,. * and 
41b0: 43 4b 41 5f 45 43 5f 50 4f 49 4e 54 20 61 72 65  CKA_EC_POINT are
41c0: 20 6e 65 77 20 66 6f 72 20 76 32 2e 30 20 2a 2f   new for v2.0 */
41d0: 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 45 58 54  .#define CKA_EXT
41e0: 52 41 43 54 41 42 4c 45 20 20 20 20 20 20 20 20  RACTABLE        
41f0: 30 78 30 30 30 30 30 31 36 32 0a 23 64 65 66 69  0x00000162.#defi
4200: 6e 65 20 43 4b 41 5f 4c 4f 43 41 4c 20 20 20 20  ne CKA_LOCAL    
4210: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
4220: 30 31 36 33 0a 23 64 65 66 69 6e 65 20 43 4b 41  0163.#define CKA
4230: 5f 4e 45 56 45 52 5f 45 58 54 52 41 43 54 41 42  _NEVER_EXTRACTAB
4240: 4c 45 20 20 30 78 30 30 30 30 30 31 36 34 0a 23  LE  0x00000164.#
4250: 64 65 66 69 6e 65 20 43 4b 41 5f 41 4c 57 41 59  define CKA_ALWAY
4260: 53 5f 53 45 4e 53 49 54 49 56 45 20 20 20 30 78  S_SENSITIVE   0x
4270: 30 30 30 30 30 31 36 35 0a 0a 2f 2a 20 43 4b 41  00000165../* CKA
4280: 5f 4b 45 59 5f 47 45 4e 5f 4d 45 43 48 41 4e 49  _KEY_GEN_MECHANI
4290: 53 4d 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32  SM is new for v2
42a0: 2e 31 31 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  .11 */.#define C
42b0: 4b 41 5f 4b 45 59 5f 47 45 4e 5f 4d 45 43 48 41  KA_KEY_GEN_MECHA
42c0: 4e 49 53 4d 20 20 30 78 30 30 30 30 30 31 36 36  NISM  0x00000166
42d0: 0a 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f 4d 4f  ..#define CKA_MO
42e0: 44 49 46 49 41 42 4c 45 20 20 20 20 20 20 20 20  DIFIABLE        
42f0: 20 30 78 30 30 30 30 30 31 37 30 0a 0a 2f 2a 20   0x00000170../* 
4300: 43 4b 41 5f 45 43 44 53 41 5f 50 41 52 41 4d 53  CKA_ECDSA_PARAMS
4310: 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 69   is deprecated i
4320: 6e 20 76 32 2e 31 31 2c 0a 20 2a 20 43 4b 41 5f  n v2.11,. * CKA_
4330: 45 43 5f 50 41 52 41 4d 53 20 69 73 20 70 72 65  EC_PARAMS is pre
4340: 66 65 72 72 65 64 2e 20 2a 2f 0a 23 64 65 66 69  ferred. */.#defi
4350: 6e 65 20 43 4b 41 5f 45 43 44 53 41 5f 50 41 52  ne CKA_ECDSA_PAR
4360: 41 4d 53 20 20 20 20 20 20 20 30 78 30 30 30 30  AMS       0x0000
4370: 30 31 38 30 0a 23 64 65 66 69 6e 65 20 43 4b 41  0180.#define CKA
4380: 5f 45 43 5f 50 41 52 41 4d 53 20 20 20 20 20 20  _EC_PARAMS      
4390: 20 20 20 20 30 78 30 30 30 30 30 31 38 30 0a 0a      0x00000180..
43a0: 23 64 65 66 69 6e 65 20 43 4b 41 5f 45 43 5f 50  #define CKA_EC_P
43b0: 4f 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 30  OINT           0
43c0: 78 30 30 30 30 30 31 38 31 0a 0a 2f 2a 20 43 4b  x00000181../* CK
43d0: 41 5f 53 45 43 4f 4e 44 41 52 59 5f 41 55 54 48  A_SECONDARY_AUTH
43e0: 2c 20 43 4b 41 5f 41 55 54 48 5f 50 49 4e 5f 46  , CKA_AUTH_PIN_F
43f0: 4c 41 47 53 2c 20 0a 20 2a 20 43 4b 41 5f 48 57  LAGS, . * CKA_HW
4400: 5f 46 45 41 54 55 52 45 5f 54 59 50 45 2c 20 43  _FEATURE_TYPE, C
4410: 4b 41 5f 52 45 53 45 54 5f 4f 4e 5f 49 4e 49 54  KA_RESET_ON_INIT
4420: 2c 20 61 6e 64 20 43 4b 41 5f 48 41 53 5f 52 45  , and CKA_HAS_RE
4430: 53 45 54 0a 20 2a 20 61 72 65 20 6e 65 77 20 66  SET. * are new f
4440: 6f 72 20 76 32 2e 31 30 20 2a 2f 0a 23 64 65 66  or v2.10 */.#def
4450: 69 6e 65 20 43 4b 41 5f 53 45 43 4f 4e 44 41 52  ine CKA_SECONDAR
4460: 59 5f 41 55 54 48 20 20 20 20 20 30 78 30 30 30  Y_AUTH     0x000
4470: 30 30 32 30 30 0a 23 64 65 66 69 6e 65 20 43 4b  00200.#define CK
4480: 41 5f 41 55 54 48 5f 50 49 4e 5f 46 4c 41 47 53  A_AUTH_PIN_FLAGS
4490: 20 20 20 20 20 30 78 30 30 30 30 30 32 30 31 0a       0x00000201.
44a0: 23 64 65 66 69 6e 65 20 43 4b 41 5f 48 57 5f 46  #define CKA_HW_F
44b0: 45 41 54 55 52 45 5f 54 59 50 45 20 20 20 20 30  EATURE_TYPE    0
44c0: 78 30 30 30 30 30 33 30 30 0a 23 64 65 66 69 6e  x00000300.#defin
44d0: 65 20 43 4b 41 5f 52 45 53 45 54 5f 4f 4e 5f 49  e CKA_RESET_ON_I
44e0: 4e 49 54 20 20 20 20 20 20 30 78 30 30 30 30 30  NIT      0x00000
44f0: 33 30 31 0a 23 64 65 66 69 6e 65 20 43 4b 41 5f  301.#define CKA_
4500: 48 41 53 5f 52 45 53 45 54 20 20 20 20 20 20 20  HAS_RESET       
4510: 20 20 20 30 78 30 30 30 30 30 33 30 32 0a 0a 23     0x00000302..#
4520: 64 65 66 69 6e 65 20 43 4b 41 5f 56 45 4e 44 4f  define CKA_VENDO
4530: 52 5f 44 45 46 49 4e 45 44 20 20 20 20 20 30 78  R_DEFINED     0x
4540: 38 30 30 30 30 30 30 30 0a 0a 0a 2f 2a 20 43 4b  80000000.../* CK
4550: 5f 41 54 54 52 49 42 55 54 45 20 69 73 20 61 20  _ATTRIBUTE is a 
4560: 73 74 72 75 63 74 75 72 65 20 74 68 61 74 20 69  structure that i
4570: 6e 63 6c 75 64 65 73 20 74 68 65 20 74 79 70 65  ncludes the type
4580: 2c 20 6c 65 6e 67 74 68 0a 20 2a 20 61 6e 64 20  , length. * and 
4590: 76 61 6c 75 65 20 6f 66 20 61 6e 20 61 74 74 72  value of an attr
45a0: 69 62 75 74 65 20 2a 2f 0a 74 79 70 65 64 65 66  ibute */.typedef
45b0: 20 73 74 72 75 63 74 20 43 4b 5f 41 54 54 52 49   struct CK_ATTRI
45c0: 42 55 54 45 20 7b 0a 20 20 43 4b 5f 41 54 54 52  BUTE {.  CK_ATTR
45d0: 49 42 55 54 45 5f 54 59 50 45 20 74 79 70 65 3b  IBUTE_TYPE type;
45e0: 0a 20 20 43 4b 5f 56 4f 49 44 5f 50 54 52 20 20  .  CK_VOID_PTR  
45f0: 20 20 20 20 20 70 56 61 6c 75 65 3b 0a 0a 20 20       pValue;..  
4600: 2f 2a 20 75 6c 56 61 6c 75 65 4c 65 6e 20 77 65  /* ulValueLen we
4610: 6e 74 20 66 72 6f 6d 20 43 4b 5f 55 53 48 4f 52  nt from CK_USHOR
4620: 54 20 74 6f 20 43 4b 5f 55 4c 4f 4e 47 20 66 6f  T to CK_ULONG fo
4630: 72 20 76 32 2e 30 20 2a 2f 0a 20 20 43 4b 5f 55  r v2.0 */.  CK_U
4640: 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20 75 6c  LONG          ul
4650: 56 61 6c 75 65 4c 65 6e 3b 20 20 2f 2a 20 69 6e  ValueLen;  /* in
4660: 20 62 79 74 65 73 20 2a 2f 0a 7d 20 43 4b 5f 41   bytes */.} CK_A
4670: 54 54 52 49 42 55 54 45 3b 0a 0a 74 79 70 65 64  TTRIBUTE;..typed
4680: 65 66 20 43 4b 5f 41 54 54 52 49 42 55 54 45 20  ef CK_ATTRIBUTE 
4690: 43 4b 5f 50 54 52 20 43 4b 5f 41 54 54 52 49 42  CK_PTR CK_ATTRIB
46a0: 55 54 45 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b  UTE_PTR;.../* CK
46b0: 5f 44 41 54 45 20 69 73 20 61 20 73 74 72 75 63  _DATE is a struc
46c0: 74 75 72 65 20 74 68 61 74 20 64 65 66 69 6e 65  ture that define
46d0: 73 20 61 20 64 61 74 65 20 2a 2f 0a 74 79 70 65  s a date */.type
46e0: 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f 44 41  def struct CK_DA
46f0: 54 45 7b 0a 20 20 43 4b 5f 43 48 41 52 20 20 20  TE{.  CK_CHAR   
4700: 20 20 20 20 79 65 61 72 5b 34 5d 3b 20 20 20 2f      year[4];   /
4710: 2a 20 74 68 65 20 79 65 61 72 20 28 22 31 39 30  * the year ("190
4720: 30 22 20 2d 20 22 39 39 39 39 22 29 20 2a 2f 0a  0" - "9999") */.
4730: 20 20 43 4b 5f 43 48 41 52 20 20 20 20 20 20 20    CK_CHAR       
4740: 6d 6f 6e 74 68 5b 32 5d 3b 20 20 2f 2a 20 74 68  month[2];  /* th
4750: 65 20 6d 6f 6e 74 68 20 28 22 30 31 22 20 2d 20  e month ("01" - 
4760: 22 31 32 22 29 20 2a 2f 0a 20 20 43 4b 5f 43 48  "12") */.  CK_CH
4770: 41 52 20 20 20 20 20 20 20 64 61 79 5b 32 5d 3b  AR       day[2];
4780: 20 20 20 20 2f 2a 20 74 68 65 20 64 61 79 20 20      /* the day  
4790: 20 28 22 30 31 22 20 2d 20 22 33 31 22 29 20 2a   ("01" - "31") *
47a0: 2f 0a 7d 20 43 4b 5f 44 41 54 45 3b 0a 0a 0a 2f  /.} CK_DATE;.../
47b0: 2a 20 43 4b 5f 4d 45 43 48 41 4e 49 53 4d 5f 54  * CK_MECHANISM_T
47c0: 59 50 45 20 69 73 20 61 20 76 61 6c 75 65 20 74  YPE is a value t
47d0: 68 61 74 20 69 64 65 6e 74 69 66 69 65 73 20 61  hat identifies a
47e0: 20 6d 65 63 68 61 6e 69 73 6d 0a 20 2a 20 74 79   mechanism. * ty
47f0: 70 65 20 2a 2f 0a 2f 2a 20 43 4b 5f 4d 45 43 48  pe */./* CK_MECH
4800: 41 4e 49 53 4d 5f 54 59 50 45 20 77 61 73 20 63  ANISM_TYPE was c
4810: 68 61 6e 67 65 64 20 66 72 6f 6d 20 43 4b 5f 55  hanged from CK_U
4820: 53 48 4f 52 54 20 74 6f 20 43 4b 5f 55 4c 4f 4e  SHORT to CK_ULON
4830: 47 20 66 6f 72 0a 20 2a 20 76 32 2e 30 20 2a 2f  G for. * v2.0 */
4840: 0a 74 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f 4e  .typedef CK_ULON
4850: 47 20 20 20 20 20 20 20 20 20 20 43 4b 5f 4d 45  G          CK_ME
4860: 43 48 41 4e 49 53 4d 5f 54 59 50 45 3b 0a 0a 2f  CHANISM_TYPE;../
4870: 2a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  * the following 
4880: 6d 65 63 68 61 6e 69 73 6d 20 74 79 70 65 73 20  mechanism types 
4890: 61 72 65 20 64 65 66 69 6e 65 64 3a 20 2a 2f 0a  are defined: */.
48a0: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 53 41 5f  #define CKM_RSA_
48b0: 50 4b 43 53 5f 4b 45 59 5f 50 41 49 52 5f 47 45  PKCS_KEY_PAIR_GE
48c0: 4e 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30  N      0x0000000
48d0: 30 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 53  0.#define CKM_RS
48e0: 41 5f 50 4b 43 53 20 20 20 20 20 20 20 20 20 20  A_PKCS          
48f0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
4900: 30 30 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  001.#define CKM_
4910: 52 53 41 5f 39 37 39 36 20 20 20 20 20 20 20 20  RSA_9796        
4920: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
4930: 30 30 30 30 32 0a 23 64 65 66 69 6e 65 20 43 4b  00002.#define CK
4940: 4d 5f 52 53 41 5f 58 5f 35 30 39 20 20 20 20 20  M_RSA_X_509     
4950: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
4960: 30 30 30 30 30 30 33 0a 0a 2f 2a 20 43 4b 4d 5f  0000003../* CKM_
4970: 4d 44 32 5f 52 53 41 5f 50 4b 43 53 2c 20 43 4b  MD2_RSA_PKCS, CK
4980: 4d 5f 4d 44 35 5f 52 53 41 5f 50 4b 43 53 2c 20  M_MD5_RSA_PKCS, 
4990: 61 6e 64 20 43 4b 4d 5f 53 48 41 31 5f 52 53 41  and CKM_SHA1_RSA
49a0: 5f 50 4b 43 53 0a 20 2a 20 61 72 65 20 6e 65 77  _PKCS. * are new
49b0: 20 66 6f 72 20 76 32 2e 30 2e 20 20 54 68 65 79   for v2.0.  They
49c0: 20 61 72 65 20 6d 65 63 68 61 6e 69 73 6d 73 20   are mechanisms 
49d0: 77 68 69 63 68 20 68 61 73 68 20 61 6e 64 20 73  which hash and s
49e0: 69 67 6e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  ign */.#define C
49f0: 4b 4d 5f 4d 44 32 5f 52 53 41 5f 50 4b 43 53 20  KM_MD2_RSA_PKCS 
4a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
4a10: 30 30 30 30 30 30 30 34 0a 23 64 65 66 69 6e 65  00000004.#define
4a20: 20 43 4b 4d 5f 4d 44 35 5f 52 53 41 5f 50 4b 43   CKM_MD5_RSA_PKC
4a30: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  S               
4a40: 30 78 30 30 30 30 30 30 30 35 0a 23 64 65 66 69  0x00000005.#defi
4a50: 6e 65 20 43 4b 4d 5f 53 48 41 31 5f 52 53 41 5f  ne CKM_SHA1_RSA_
4a60: 50 4b 43 53 20 20 20 20 20 20 20 20 20 20 20 20  PKCS            
4a70: 20 20 30 78 30 30 30 30 30 30 30 36 0a 0a 2f 2a    0x00000006../*
4a80: 20 43 4b 4d 5f 52 49 50 45 4d 44 31 32 38 5f 52   CKM_RIPEMD128_R
4a90: 53 41 5f 50 4b 43 53 2c 20 43 4b 4d 5f 52 49 50  SA_PKCS, CKM_RIP
4aa0: 45 4d 44 31 36 30 5f 52 53 41 5f 50 4b 43 53 2c  EMD160_RSA_PKCS,
4ab0: 20 61 6e 64 0a 20 2a 20 43 4b 4d 5f 52 53 41 5f   and. * CKM_RSA_
4ac0: 50 4b 43 53 5f 4f 41 45 50 20 61 72 65 20 6e 65  PKCS_OAEP are ne
4ad0: 77 20 66 6f 72 20 76 32 2e 31 30 20 2a 2f 0a 23  w for v2.10 */.#
4ae0: 64 65 66 69 6e 65 20 43 4b 4d 5f 52 49 50 45 4d  define CKM_RIPEM
4af0: 44 31 32 38 5f 52 53 41 5f 50 4b 43 53 20 20 20  D128_RSA_PKCS   
4b00: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30 37        0x00000007
4b10: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 49 50  .#define CKM_RIP
4b20: 45 4d 44 31 36 30 5f 52 53 41 5f 50 4b 43 53 20  EMD160_RSA_PKCS 
4b30: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
4b40: 30 38 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52  08.#define CKM_R
4b50: 53 41 5f 50 4b 43 53 5f 4f 41 45 50 20 20 20 20  SA_PKCS_OAEP    
4b60: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
4b70: 30 30 30 39 0a 0a 2f 2a 20 43 4b 4d 5f 52 53 41  0009../* CKM_RSA
4b80: 5f 58 39 5f 33 31 5f 4b 45 59 5f 50 41 49 52 5f  _X9_31_KEY_PAIR_
4b90: 47 45 4e 2c 20 43 4b 4d 5f 52 53 41 5f 58 39 5f  GEN, CKM_RSA_X9_
4ba0: 33 31 2c 20 43 4b 4d 5f 53 48 41 31 5f 52 53 41  31, CKM_SHA1_RSA
4bb0: 5f 58 39 5f 33 31 2c 0a 20 2a 20 43 4b 4d 5f 52  _X9_31,. * CKM_R
4bc0: 53 41 5f 50 4b 43 53 5f 50 53 53 2c 20 61 6e 64  SA_PKCS_PSS, and
4bd0: 20 43 4b 4d 5f 53 48 41 31 5f 52 53 41 5f 50 4b   CKM_SHA1_RSA_PK
4be0: 43 53 5f 50 53 53 20 61 72 65 20 6e 65 77 20 66  CS_PSS are new f
4bf0: 6f 72 20 76 32 2e 31 31 20 2a 2f 0a 23 64 65 66  or v2.11 */.#def
4c00: 69 6e 65 20 43 4b 4d 5f 52 53 41 5f 58 39 5f 33  ine CKM_RSA_X9_3
4c10: 31 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e 20 20  1_KEY_PAIR_GEN  
4c20: 20 20 20 30 78 30 30 30 30 30 30 30 41 0a 23 64     0x0000000A.#d
4c30: 65 66 69 6e 65 20 43 4b 4d 5f 52 53 41 5f 58 39  efine CKM_RSA_X9
4c40: 5f 33 31 20 20 20 20 20 20 20 20 20 20 20 20 20  _31             
4c50: 20 20 20 20 20 30 78 30 30 30 30 30 30 30 42 0a       0x0000000B.
4c60: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53 48 41 31  #define CKM_SHA1
4c70: 5f 52 53 41 5f 58 39 5f 33 31 20 20 20 20 20 20  _RSA_X9_31      
4c80: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30         0x0000000
4c90: 43 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 53  C.#define CKM_RS
4ca0: 41 5f 50 4b 43 53 5f 50 53 53 20 20 20 20 20 20  A_PKCS_PSS      
4cb0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
4cc0: 30 30 44 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  00D.#define CKM_
4cd0: 53 48 41 31 5f 52 53 41 5f 50 4b 43 53 5f 50 53  SHA1_RSA_PKCS_PS
4ce0: 53 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30  S          0x000
4cf0: 30 30 30 30 45 0a 0a 23 64 65 66 69 6e 65 20 43  0000E..#define C
4d00: 4b 4d 5f 44 53 41 5f 4b 45 59 5f 50 41 49 52 5f  KM_DSA_KEY_PAIR_
4d10: 47 45 4e 20 20 20 20 20 20 20 20 20 20 20 30 78  GEN           0x
4d20: 30 30 30 30 30 30 31 30 0a 23 64 65 66 69 6e 65  00000010.#define
4d30: 20 43 4b 4d 5f 44 53 41 20 20 20 20 20 20 20 20   CKM_DSA        
4d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4d50: 30 78 30 30 30 30 30 30 31 31 0a 23 64 65 66 69  0x00000011.#defi
4d60: 6e 65 20 43 4b 4d 5f 44 53 41 5f 53 48 41 31 20  ne CKM_DSA_SHA1 
4d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4d80: 20 20 30 78 30 30 30 30 30 30 31 32 0a 23 64 65    0x00000012.#de
4d90: 66 69 6e 65 20 43 4b 4d 5f 44 48 5f 50 4b 43 53  fine CKM_DH_PKCS
4da0: 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e 20 20 20  _KEY_PAIR_GEN   
4db0: 20 20 20 20 30 78 30 30 30 30 30 30 32 30 0a 23      0x00000020.#
4dc0: 64 65 66 69 6e 65 20 43 4b 4d 5f 44 48 5f 50 4b  define CKM_DH_PK
4dd0: 43 53 5f 44 45 52 49 56 45 20 20 20 20 20 20 20  CS_DERIVE       
4de0: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 32 31        0x00000021
4df0: 0a 0a 2f 2a 20 43 4b 4d 5f 58 39 5f 34 32 5f 44  ../* CKM_X9_42_D
4e00: 48 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e 2c 20  H_KEY_PAIR_GEN, 
4e10: 43 4b 4d 5f 58 39 5f 34 32 5f 44 48 5f 44 45 52  CKM_X9_42_DH_DER
4e20: 49 56 45 2c 0a 20 2a 20 43 4b 4d 5f 58 39 5f 34  IVE,. * CKM_X9_4
4e30: 32 5f 44 48 5f 48 59 42 52 49 44 5f 44 45 52 49  2_DH_HYBRID_DERI
4e40: 56 45 2c 20 61 6e 64 20 43 4b 4d 5f 58 39 5f 34  VE, and CKM_X9_4
4e50: 32 5f 4d 51 56 5f 44 45 52 49 56 45 20 61 72 65  2_MQV_DERIVE are
4e60: 20 6e 65 77 20 66 6f 72 0a 20 2a 20 76 32 2e 31   new for. * v2.1
4e70: 31 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4d  1 */.#define CKM
4e80: 5f 58 39 5f 34 32 5f 44 48 5f 4b 45 59 5f 50 41  _X9_42_DH_KEY_PA
4e90: 49 52 5f 47 45 4e 20 20 20 20 20 20 30 78 30 30  IR_GEN      0x00
4ea0: 30 30 30 30 33 30 0a 23 64 65 66 69 6e 65 20 43  000030.#define C
4eb0: 4b 4d 5f 58 39 5f 34 32 5f 44 48 5f 44 45 52 49  KM_X9_42_DH_DERI
4ec0: 56 45 20 20 20 20 20 20 20 20 20 20 20 20 30 78  VE            0x
4ed0: 30 30 30 30 30 30 33 31 0a 23 64 65 66 69 6e 65  00000031.#define
4ee0: 20 43 4b 4d 5f 58 39 5f 34 32 5f 44 48 5f 48 59   CKM_X9_42_DH_HY
4ef0: 42 52 49 44 5f 44 45 52 49 56 45 20 20 20 20 20  BRID_DERIVE     
4f00: 30 78 30 30 30 30 30 30 33 32 0a 23 64 65 66 69  0x00000032.#defi
4f10: 6e 65 20 43 4b 4d 5f 58 39 5f 34 32 5f 4d 51 56  ne CKM_X9_42_MQV
4f20: 5f 44 45 52 49 56 45 20 20 20 20 20 20 20 20 20  _DERIVE         
4f30: 20 20 30 78 30 30 30 30 30 30 33 33 0a 0a 23 64    0x00000033..#d
4f40: 65 66 69 6e 65 20 43 4b 4d 5f 52 43 32 5f 4b 45  efine CKM_RC2_KE
4f50: 59 5f 47 45 4e 20 20 20 20 20 20 20 20 20 20 20  Y_GEN           
4f60: 20 20 20 20 20 30 78 30 30 30 30 30 31 30 30 0a       0x00000100.
4f70: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 43 32 5f  #define CKM_RC2_
4f80: 45 43 42 20 20 20 20 20 20 20 20 20 20 20 20 20  ECB             
4f90: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31 30         0x0000010
4fa0: 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 43  1.#define CKM_RC
4fb0: 32 5f 43 42 43 20 20 20 20 20 20 20 20 20 20 20  2_CBC           
4fc0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
4fd0: 31 30 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  102.#define CKM_
4fe0: 52 43 32 5f 4d 41 43 20 20 20 20 20 20 20 20 20  RC2_MAC         
4ff0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5000: 30 30 31 30 33 0a 0a 2f 2a 20 43 4b 4d 5f 52 43  00103../* CKM_RC
5010: 32 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 20 61 6e  2_MAC_GENERAL an
5020: 64 20 43 4b 4d 5f 52 43 32 5f 43 42 43 5f 50 41  d CKM_RC2_CBC_PA
5030: 44 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32  D are new for v2
5040: 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  .0 */.#define CK
5050: 4d 5f 52 43 32 5f 4d 41 43 5f 47 45 4e 45 52 41  M_RC2_MAC_GENERA
5060: 4c 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30  L            0x0
5070: 30 30 30 30 31 30 34 0a 23 64 65 66 69 6e 65 20  0000104.#define 
5080: 43 4b 4d 5f 52 43 32 5f 43 42 43 5f 50 41 44 20  CKM_RC2_CBC_PAD 
5090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
50a0: 78 30 30 30 30 30 31 30 35 0a 0a 23 64 65 66 69  x00000105..#defi
50b0: 6e 65 20 43 4b 4d 5f 52 43 34 5f 4b 45 59 5f 47  ne CKM_RC4_KEY_G
50c0: 45 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20  EN              
50d0: 20 20 30 78 30 30 30 30 30 31 31 30 0a 23 64 65    0x00000110.#de
50e0: 66 69 6e 65 20 43 4b 4d 5f 52 43 34 20 20 20 20  fine CKM_RC4    
50f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5100: 20 20 20 20 30 78 30 30 30 30 30 31 31 31 0a 23      0x00000111.#
5110: 64 65 66 69 6e 65 20 43 4b 4d 5f 44 45 53 5f 4b  define CKM_DES_K
5120: 45 59 5f 47 45 4e 20 20 20 20 20 20 20 20 20 20  EY_GEN          
5130: 20 20 20 20 20 20 30 78 30 30 30 30 30 31 32 30        0x00000120
5140: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 44 45 53  .#define CKM_DES
5150: 5f 45 43 42 20 20 20 20 20 20 20 20 20 20 20 20  _ECB            
5160: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
5170: 32 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 44  21.#define CKM_D
5180: 45 53 5f 43 42 43 20 20 20 20 20 20 20 20 20 20  ES_CBC          
5190: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
51a0: 30 31 32 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d  0122.#define CKM
51b0: 5f 44 45 53 5f 4d 41 43 20 20 20 20 20 20 20 20  _DES_MAC        
51c0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
51d0: 30 30 30 31 32 33 0a 0a 2f 2a 20 43 4b 4d 5f 44  000123../* CKM_D
51e0: 45 53 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 20 61  ES_MAC_GENERAL a
51f0: 6e 64 20 43 4b 4d 5f 44 45 53 5f 43 42 43 5f 50  nd CKM_DES_CBC_P
5200: 41 44 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76  AD are new for v
5210: 32 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  2.0 */.#define C
5220: 4b 4d 5f 44 45 53 5f 4d 41 43 5f 47 45 4e 45 52  KM_DES_MAC_GENER
5230: 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 30 78  AL            0x
5240: 30 30 30 30 30 31 32 34 0a 23 64 65 66 69 6e 65  00000124.#define
5250: 20 43 4b 4d 5f 44 45 53 5f 43 42 43 5f 50 41 44   CKM_DES_CBC_PAD
5260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5270: 30 78 30 30 30 30 30 31 32 35 0a 0a 23 64 65 66  0x00000125..#def
5280: 69 6e 65 20 43 4b 4d 5f 44 45 53 32 5f 4b 45 59  ine CKM_DES2_KEY
5290: 5f 47 45 4e 20 20 20 20 20 20 20 20 20 20 20 20  _GEN            
52a0: 20 20 20 30 78 30 30 30 30 30 31 33 30 0a 23 64     0x00000130.#d
52b0: 65 66 69 6e 65 20 43 4b 4d 5f 44 45 53 33 5f 4b  efine CKM_DES3_K
52c0: 45 59 5f 47 45 4e 20 20 20 20 20 20 20 20 20 20  EY_GEN          
52d0: 20 20 20 20 20 30 78 30 30 30 30 30 31 33 31 0a       0x00000131.
52e0: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 44 45 53 33  #define CKM_DES3
52f0: 5f 45 43 42 20 20 20 20 20 20 20 20 20 20 20 20  _ECB            
5300: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31 33         0x0000013
5310: 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 44 45  2.#define CKM_DE
5320: 53 33 5f 43 42 43 20 20 20 20 20 20 20 20 20 20  S3_CBC          
5330: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
5340: 31 33 33 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  133.#define CKM_
5350: 44 45 53 33 5f 4d 41 43 20 20 20 20 20 20 20 20  DES3_MAC        
5360: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5370: 30 30 31 33 34 0a 0a 2f 2a 20 43 4b 4d 5f 44 45  00134../* CKM_DE
5380: 53 33 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 2c 20  S3_MAC_GENERAL, 
5390: 43 4b 4d 5f 44 45 53 33 5f 43 42 43 5f 50 41 44  CKM_DES3_CBC_PAD
53a0: 2c 20 43 4b 4d 5f 43 44 4d 46 5f 4b 45 59 5f 47  , CKM_CDMF_KEY_G
53b0: 45 4e 2c 0a 20 2a 20 43 4b 4d 5f 43 44 4d 46 5f  EN,. * CKM_CDMF_
53c0: 45 43 42 2c 20 43 4b 4d 5f 43 44 4d 46 5f 43 42  ECB, CKM_CDMF_CB
53d0: 43 2c 20 43 4b 4d 5f 43 44 4d 46 5f 4d 41 43 2c  C, CKM_CDMF_MAC,
53e0: 0a 20 2a 20 43 4b 4d 5f 43 44 4d 46 5f 4d 41 43  . * CKM_CDMF_MAC
53f0: 5f 47 45 4e 45 52 41 4c 2c 20 61 6e 64 20 43 4b  _GENERAL, and CK
5400: 4d 5f 43 44 4d 46 5f 43 42 43 5f 50 41 44 20 61  M_CDMF_CBC_PAD a
5410: 72 65 20 6e 65 77 20 66 6f 72 20 76 32 2e 30 20  re new for v2.0 
5420: 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 44  */.#define CKM_D
5430: 45 53 33 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 20  ES3_MAC_GENERAL 
5440: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
5450: 30 31 33 35 0a 23 64 65 66 69 6e 65 20 43 4b 4d  0135.#define CKM
5460: 5f 44 45 53 33 5f 43 42 43 5f 50 41 44 20 20 20  _DES3_CBC_PAD   
5470: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
5480: 30 30 30 31 33 36 0a 23 64 65 66 69 6e 65 20 43  000136.#define C
5490: 4b 4d 5f 43 44 4d 46 5f 4b 45 59 5f 47 45 4e 20  KM_CDMF_KEY_GEN 
54a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
54b0: 30 30 30 30 30 31 34 30 0a 23 64 65 66 69 6e 65  00000140.#define
54c0: 20 43 4b 4d 5f 43 44 4d 46 5f 45 43 42 20 20 20   CKM_CDMF_ECB   
54d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
54e0: 30 78 30 30 30 30 30 31 34 31 0a 23 64 65 66 69  0x00000141.#defi
54f0: 6e 65 20 43 4b 4d 5f 43 44 4d 46 5f 43 42 43 20  ne CKM_CDMF_CBC 
5500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5510: 20 20 30 78 30 30 30 30 30 31 34 32 0a 23 64 65    0x00000142.#de
5520: 66 69 6e 65 20 43 4b 4d 5f 43 44 4d 46 5f 4d 41  fine CKM_CDMF_MA
5530: 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  C               
5540: 20 20 20 20 30 78 30 30 30 30 30 31 34 33 0a 23      0x00000143.#
5550: 64 65 66 69 6e 65 20 43 4b 4d 5f 43 44 4d 46 5f  define CKM_CDMF_
5560: 4d 41 43 5f 47 45 4e 45 52 41 4c 20 20 20 20 20  MAC_GENERAL     
5570: 20 20 20 20 20 20 30 78 30 30 30 30 30 31 34 34        0x00000144
5580: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 44 4d  .#define CKM_CDM
5590: 46 5f 43 42 43 5f 50 41 44 20 20 20 20 20 20 20  F_CBC_PAD       
55a0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
55b0: 34 35 0a 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  45..#define CKM_
55c0: 4d 44 32 20 20 20 20 20 20 20 20 20 20 20 20 20  MD2             
55d0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
55e0: 30 30 32 30 30 0a 0a 2f 2a 20 43 4b 4d 5f 4d 44  00200../* CKM_MD
55f0: 32 5f 48 4d 41 43 20 61 6e 64 20 43 4b 4d 5f 4d  2_HMAC and CKM_M
5600: 44 32 5f 48 4d 41 43 5f 47 45 4e 45 52 41 4c 20  D2_HMAC_GENERAL 
5610: 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32 2e 30  are new for v2.0
5620: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f   */.#define CKM_
5630: 4d 44 32 5f 48 4d 41 43 20 20 20 20 20 20 20 20  MD2_HMAC        
5640: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5650: 30 30 32 30 31 0a 23 64 65 66 69 6e 65 20 43 4b  00201.#define CK
5660: 4d 5f 4d 44 32 5f 48 4d 41 43 5f 47 45 4e 45 52  M_MD2_HMAC_GENER
5670: 41 4c 20 20 20 20 20 20 20 20 20 20 20 30 78 30  AL           0x0
5680: 30 30 30 30 32 30 32 0a 0a 23 64 65 66 69 6e 65  0000202..#define
5690: 20 43 4b 4d 5f 4d 44 35 20 20 20 20 20 20 20 20   CKM_MD5        
56a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
56b0: 30 78 30 30 30 30 30 32 31 30 0a 0a 2f 2a 20 43  0x00000210../* C
56c0: 4b 4d 5f 4d 44 35 5f 48 4d 41 43 20 61 6e 64 20  KM_MD5_HMAC and 
56d0: 43 4b 4d 5f 4d 44 35 5f 48 4d 41 43 5f 47 45 4e  CKM_MD5_HMAC_GEN
56e0: 45 52 41 4c 20 61 72 65 20 6e 65 77 20 66 6f 72  ERAL are new for
56f0: 20 76 32 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65   v2.0 */.#define
5700: 20 43 4b 4d 5f 4d 44 35 5f 48 4d 41 43 20 20 20   CKM_MD5_HMAC   
5710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5720: 30 78 30 30 30 30 30 32 31 31 0a 23 64 65 66 69  0x00000211.#defi
5730: 6e 65 20 43 4b 4d 5f 4d 44 35 5f 48 4d 41 43 5f  ne CKM_MD5_HMAC_
5740: 47 45 4e 45 52 41 4c 20 20 20 20 20 20 20 20 20  GENERAL         
5750: 20 20 30 78 30 30 30 30 30 32 31 32 0a 0a 23 64    0x00000212..#d
5760: 65 66 69 6e 65 20 43 4b 4d 5f 53 48 41 5f 31 20  efine CKM_SHA_1 
5770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5780: 20 20 20 20 20 30 78 30 30 30 30 30 32 32 30 0a       0x00000220.
5790: 0a 2f 2a 20 43 4b 4d 5f 53 48 41 5f 31 5f 48 4d  ./* CKM_SHA_1_HM
57a0: 41 43 20 61 6e 64 20 43 4b 4d 5f 53 48 41 5f 31  AC and CKM_SHA_1
57b0: 5f 48 4d 41 43 5f 47 45 4e 45 52 41 4c 20 61 72  _HMAC_GENERAL ar
57c0: 65 20 6e 65 77 20 66 6f 72 20 76 32 2e 30 20 2a  e new for v2.0 *
57d0: 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53 48  /.#define CKM_SH
57e0: 41 5f 31 5f 48 4d 41 43 20 20 20 20 20 20 20 20  A_1_HMAC        
57f0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
5800: 32 32 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  221.#define CKM_
5810: 53 48 41 5f 31 5f 48 4d 41 43 5f 47 45 4e 45 52  SHA_1_HMAC_GENER
5820: 41 4c 20 20 20 20 20 20 20 20 20 30 78 30 30 30  AL         0x000
5830: 30 30 32 32 32 0a 0a 2f 2a 20 43 4b 4d 5f 52 49  00222../* CKM_RI
5840: 50 45 4d 44 31 32 38 2c 20 43 4b 4d 5f 52 49 50  PEMD128, CKM_RIP
5850: 45 4d 44 31 32 38 5f 48 4d 41 43 2c 20 0a 20 2a  EMD128_HMAC, . *
5860: 20 43 4b 4d 5f 52 49 50 45 4d 44 31 32 38 5f 48   CKM_RIPEMD128_H
5870: 4d 41 43 5f 47 45 4e 45 52 41 4c 2c 20 43 4b 4d  MAC_GENERAL, CKM
5880: 5f 52 49 50 45 4d 44 31 36 30 2c 20 43 4b 4d 5f  _RIPEMD160, CKM_
5890: 52 49 50 45 4d 44 31 36 30 5f 48 4d 41 43 2c 0a  RIPEMD160_HMAC,.
58a0: 20 2a 20 61 6e 64 20 43 4b 4d 5f 52 49 50 45 4d   * and CKM_RIPEM
58b0: 44 31 36 30 5f 48 4d 41 43 5f 47 45 4e 45 52 41  D160_HMAC_GENERA
58c0: 4c 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32  L are new for v2
58d0: 2e 31 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  .10 */.#define C
58e0: 4b 4d 5f 52 49 50 45 4d 44 31 32 38 20 20 20 20  KM_RIPEMD128    
58f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
5900: 30 30 30 30 30 32 33 30 0a 23 64 65 66 69 6e 65  00000230.#define
5910: 20 43 4b 4d 5f 52 49 50 45 4d 44 31 32 38 5f 48   CKM_RIPEMD128_H
5920: 4d 41 43 20 20 20 20 20 20 20 20 20 20 20 20 20  MAC             
5930: 30 78 30 30 30 30 30 32 33 31 0a 23 64 65 66 69  0x00000231.#defi
5940: 6e 65 20 43 4b 4d 5f 52 49 50 45 4d 44 31 32 38  ne CKM_RIPEMD128
5950: 5f 48 4d 41 43 5f 47 45 4e 45 52 41 4c 20 20 20  _HMAC_GENERAL   
5960: 20 20 30 78 30 30 30 30 30 32 33 32 0a 23 64 65    0x00000232.#de
5970: 66 69 6e 65 20 43 4b 4d 5f 52 49 50 45 4d 44 31  fine CKM_RIPEMD1
5980: 36 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20  60              
5990: 20 20 20 20 30 78 30 30 30 30 30 32 34 30 0a 23      0x00000240.#
59a0: 64 65 66 69 6e 65 20 43 4b 4d 5f 52 49 50 45 4d  define CKM_RIPEM
59b0: 44 31 36 30 5f 48 4d 41 43 20 20 20 20 20 20 20  D160_HMAC       
59c0: 20 20 20 20 20 20 30 78 30 30 30 30 30 32 34 31        0x00000241
59d0: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 52 49 50  .#define CKM_RIP
59e0: 45 4d 44 31 36 30 5f 48 4d 41 43 5f 47 45 4e 45  EMD160_HMAC_GENE
59f0: 52 41 4c 20 20 20 20 20 30 78 30 30 30 30 30 32  RAL     0x000002
5a00: 34 32 0a 0a 2f 2a 20 41 6c 6c 20 6f 66 20 74 68  42../* All of th
5a10: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 65 63 68  e following mech
5a20: 61 6e 69 73 6d 73 20 61 72 65 20 6e 65 77 20 66  anisms are new f
5a30: 6f 72 20 76 32 2e 30 20 2a 2f 0a 2f 2a 20 4e 6f  or v2.0 */./* No
5a40: 74 65 20 74 68 61 74 20 43 41 53 54 31 32 38 20  te that CAST128 
5a50: 61 6e 64 20 43 41 53 54 35 20 61 72 65 20 74 68  and CAST5 are th
5a60: 65 20 73 61 6d 65 20 61 6c 67 6f 72 69 74 68 6d  e same algorithm
5a70: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f   */.#define CKM_
5a80: 43 41 53 54 5f 4b 45 59 5f 47 45 4e 20 20 20 20  CAST_KEY_GEN    
5a90: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5aa0: 30 30 33 30 30 0a 23 64 65 66 69 6e 65 20 43 4b  00300.#define CK
5ab0: 4d 5f 43 41 53 54 5f 45 43 42 20 20 20 20 20 20  M_CAST_ECB      
5ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
5ad0: 30 30 30 30 33 30 31 0a 23 64 65 66 69 6e 65 20  0000301.#define 
5ae0: 43 4b 4d 5f 43 41 53 54 5f 43 42 43 20 20 20 20  CKM_CAST_CBC    
5af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
5b00: 78 30 30 30 30 30 33 30 32 0a 23 64 65 66 69 6e  x00000302.#defin
5b10: 65 20 43 4b 4d 5f 43 41 53 54 5f 4d 41 43 20 20  e CKM_CAST_MAC  
5b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b30: 20 30 78 30 30 30 30 30 33 30 33 0a 23 64 65 66   0x00000303.#def
5b40: 69 6e 65 20 43 4b 4d 5f 43 41 53 54 5f 4d 41 43  ine CKM_CAST_MAC
5b50: 5f 47 45 4e 45 52 41 4c 20 20 20 20 20 20 20 20  _GENERAL        
5b60: 20 20 20 30 78 30 30 30 30 30 33 30 34 0a 23 64     0x00000304.#d
5b70: 65 66 69 6e 65 20 43 4b 4d 5f 43 41 53 54 5f 43  efine CKM_CAST_C
5b80: 42 43 5f 50 41 44 20 20 20 20 20 20 20 20 20 20  BC_PAD          
5b90: 20 20 20 20 20 30 78 30 30 30 30 30 33 30 35 0a       0x00000305.
5ba0: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 41 53 54  #define CKM_CAST
5bb0: 33 5f 4b 45 59 5f 47 45 4e 20 20 20 20 20 20 20  3_KEY_GEN       
5bc0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 33 31         0x0000031
5bd0: 30 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 41  0.#define CKM_CA
5be0: 53 54 33 5f 45 43 42 20 20 20 20 20 20 20 20 20  ST3_ECB         
5bf0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
5c00: 33 31 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  311.#define CKM_
5c10: 43 41 53 54 33 5f 43 42 43 20 20 20 20 20 20 20  CAST3_CBC       
5c20: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5c30: 30 30 33 31 32 0a 23 64 65 66 69 6e 65 20 43 4b  00312.#define CK
5c40: 4d 5f 43 41 53 54 33 5f 4d 41 43 20 20 20 20 20  M_CAST3_MAC     
5c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
5c60: 30 30 30 30 33 31 33 0a 23 64 65 66 69 6e 65 20  0000313.#define 
5c70: 43 4b 4d 5f 43 41 53 54 33 5f 4d 41 43 5f 47 45  CKM_CAST3_MAC_GE
5c80: 4e 45 52 41 4c 20 20 20 20 20 20 20 20 20 20 30  NERAL          0
5c90: 78 30 30 30 30 30 33 31 34 0a 23 64 65 66 69 6e  x00000314.#defin
5ca0: 65 20 43 4b 4d 5f 43 41 53 54 33 5f 43 42 43 5f  e CKM_CAST3_CBC_
5cb0: 50 41 44 20 20 20 20 20 20 20 20 20 20 20 20 20  PAD             
5cc0: 20 30 78 30 30 30 30 30 33 31 35 0a 23 64 65 66   0x00000315.#def
5cd0: 69 6e 65 20 43 4b 4d 5f 43 41 53 54 35 5f 4b 45  ine CKM_CAST5_KE
5ce0: 59 5f 47 45 4e 20 20 20 20 20 20 20 20 20 20 20  Y_GEN           
5cf0: 20 20 20 30 78 30 30 30 30 30 33 32 30 0a 23 64     0x00000320.#d
5d00: 65 66 69 6e 65 20 43 4b 4d 5f 43 41 53 54 31 32  efine CKM_CAST12
5d10: 38 5f 4b 45 59 5f 47 45 4e 20 20 20 20 20 20 20  8_KEY_GEN       
5d20: 20 20 20 20 20 30 78 30 30 30 30 30 33 32 30 0a       0x00000320.
5d30: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 41 53 54  #define CKM_CAST
5d40: 35 5f 45 43 42 20 20 20 20 20 20 20 20 20 20 20  5_ECB           
5d50: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 33 32         0x0000032
5d60: 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 41  1.#define CKM_CA
5d70: 53 54 31 32 38 5f 45 43 42 20 20 20 20 20 20 20  ST128_ECB       
5d80: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
5d90: 33 32 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  321.#define CKM_
5da0: 43 41 53 54 35 5f 43 42 43 20 20 20 20 20 20 20  CAST5_CBC       
5db0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5dc0: 30 30 33 32 32 0a 23 64 65 66 69 6e 65 20 43 4b  00322.#define CK
5dd0: 4d 5f 43 41 53 54 31 32 38 5f 43 42 43 20 20 20  M_CAST128_CBC   
5de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
5df0: 30 30 30 30 33 32 32 0a 23 64 65 66 69 6e 65 20  0000322.#define 
5e00: 43 4b 4d 5f 43 41 53 54 35 5f 4d 41 43 20 20 20  CKM_CAST5_MAC   
5e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
5e20: 78 30 30 30 30 30 33 32 33 0a 23 64 65 66 69 6e  x00000323.#defin
5e30: 65 20 43 4b 4d 5f 43 41 53 54 31 32 38 5f 4d 41  e CKM_CAST128_MA
5e40: 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  C               
5e50: 20 30 78 30 30 30 30 30 33 32 33 0a 23 64 65 66   0x00000323.#def
5e60: 69 6e 65 20 43 4b 4d 5f 43 41 53 54 35 5f 4d 41  ine CKM_CAST5_MA
5e70: 43 5f 47 45 4e 45 52 41 4c 20 20 20 20 20 20 20  C_GENERAL       
5e80: 20 20 20 30 78 30 30 30 30 30 33 32 34 0a 23 64     0x00000324.#d
5e90: 65 66 69 6e 65 20 43 4b 4d 5f 43 41 53 54 31 32  efine CKM_CAST12
5ea0: 38 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 20 20 20  8_MAC_GENERAL   
5eb0: 20 20 20 20 20 30 78 30 30 30 30 30 33 32 34 0a       0x00000324.
5ec0: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 41 53 54  #define CKM_CAST
5ed0: 35 5f 43 42 43 5f 50 41 44 20 20 20 20 20 20 20  5_CBC_PAD       
5ee0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 33 32         0x0000032
5ef0: 35 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 41  5.#define CKM_CA
5f00: 53 54 31 32 38 5f 43 42 43 5f 50 41 44 20 20 20  ST128_CBC_PAD   
5f10: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
5f20: 33 32 35 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  325.#define CKM_
5f30: 52 43 35 5f 4b 45 59 5f 47 45 4e 20 20 20 20 20  RC5_KEY_GEN     
5f40: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
5f50: 30 30 33 33 30 0a 23 64 65 66 69 6e 65 20 43 4b  00330.#define CK
5f60: 4d 5f 52 43 35 5f 45 43 42 20 20 20 20 20 20 20  M_RC5_ECB       
5f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
5f80: 30 30 30 30 33 33 31 0a 23 64 65 66 69 6e 65 20  0000331.#define 
5f90: 43 4b 4d 5f 52 43 35 5f 43 42 43 20 20 20 20 20  CKM_RC5_CBC     
5fa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
5fb0: 78 30 30 30 30 30 33 33 32 0a 23 64 65 66 69 6e  x00000332.#defin
5fc0: 65 20 43 4b 4d 5f 52 43 35 5f 4d 41 43 20 20 20  e CKM_RC5_MAC   
5fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5fe0: 20 30 78 30 30 30 30 30 33 33 33 0a 23 64 65 66   0x00000333.#def
5ff0: 69 6e 65 20 43 4b 4d 5f 52 43 35 5f 4d 41 43 5f  ine CKM_RC5_MAC_
6000: 47 45 4e 45 52 41 4c 20 20 20 20 20 20 20 20 20  GENERAL         
6010: 20 20 20 30 78 30 30 30 30 30 33 33 34 0a 23 64     0x00000334.#d
6020: 65 66 69 6e 65 20 43 4b 4d 5f 52 43 35 5f 43 42  efine CKM_RC5_CB
6030: 43 5f 50 41 44 20 20 20 20 20 20 20 20 20 20 20  C_PAD           
6040: 20 20 20 20 20 30 78 30 30 30 30 30 33 33 35 0a       0x00000335.
6050: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 49 44 45 41  #define CKM_IDEA
6060: 5f 4b 45 59 5f 47 45 4e 20 20 20 20 20 20 20 20  _KEY_GEN        
6070: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 33 34         0x0000034
6080: 30 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 49 44  0.#define CKM_ID
6090: 45 41 5f 45 43 42 20 20 20 20 20 20 20 20 20 20  EA_ECB          
60a0: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
60b0: 33 34 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  341.#define CKM_
60c0: 49 44 45 41 5f 43 42 43 20 20 20 20 20 20 20 20  IDEA_CBC        
60d0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
60e0: 30 30 33 34 32 0a 23 64 65 66 69 6e 65 20 43 4b  00342.#define CK
60f0: 4d 5f 49 44 45 41 5f 4d 41 43 20 20 20 20 20 20  M_IDEA_MAC      
6100: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
6110: 30 30 30 30 33 34 33 0a 23 64 65 66 69 6e 65 20  0000343.#define 
6120: 43 4b 4d 5f 49 44 45 41 5f 4d 41 43 5f 47 45 4e  CKM_IDEA_MAC_GEN
6130: 45 52 41 4c 20 20 20 20 20 20 20 20 20 20 20 30  ERAL           0
6140: 78 30 30 30 30 30 33 34 34 0a 23 64 65 66 69 6e  x00000344.#defin
6150: 65 20 43 4b 4d 5f 49 44 45 41 5f 43 42 43 5f 50  e CKM_IDEA_CBC_P
6160: 41 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  AD              
6170: 20 30 78 30 30 30 30 30 33 34 35 0a 23 64 65 66   0x00000345.#def
6180: 69 6e 65 20 43 4b 4d 5f 47 45 4e 45 52 49 43 5f  ine CKM_GENERIC_
6190: 53 45 43 52 45 54 5f 4b 45 59 5f 47 45 4e 20 20  SECRET_KEY_GEN  
61a0: 20 20 20 30 78 30 30 30 30 30 33 35 30 0a 23 64     0x00000350.#d
61b0: 65 66 69 6e 65 20 43 4b 4d 5f 43 4f 4e 43 41 54  efine CKM_CONCAT
61c0: 45 4e 41 54 45 5f 42 41 53 45 5f 41 4e 44 5f 4b  ENATE_BASE_AND_K
61d0: 45 59 20 20 20 30 78 30 30 30 30 30 33 36 30 0a  EY   0x00000360.
61e0: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 4f 4e 43  #define CKM_CONC
61f0: 41 54 45 4e 41 54 45 5f 42 41 53 45 5f 41 4e 44  ATENATE_BASE_AND
6200: 5f 44 41 54 41 20 20 30 78 30 30 30 30 30 33 36  _DATA  0x0000036
6210: 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 43 4f  2.#define CKM_CO
6220: 4e 43 41 54 45 4e 41 54 45 5f 44 41 54 41 5f 41  NCATENATE_DATA_A
6230: 4e 44 5f 42 41 53 45 20 20 30 78 30 30 30 30 30  ND_BASE  0x00000
6240: 33 36 33 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  363.#define CKM_
6250: 58 4f 52 5f 42 41 53 45 5f 41 4e 44 5f 44 41 54  XOR_BASE_AND_DAT
6260: 41 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30  A          0x000
6270: 30 30 33 36 34 0a 23 64 65 66 69 6e 65 20 43 4b  00364.#define CK
6280: 4d 5f 45 58 54 52 41 43 54 5f 4b 45 59 5f 46 52  M_EXTRACT_KEY_FR
6290: 4f 4d 5f 4b 45 59 20 20 20 20 20 20 20 30 78 30  OM_KEY       0x0
62a0: 30 30 30 30 33 36 35 0a 23 64 65 66 69 6e 65 20  0000365.#define 
62b0: 43 4b 4d 5f 53 53 4c 33 5f 50 52 45 5f 4d 41 53  CKM_SSL3_PRE_MAS
62c0: 54 45 52 5f 4b 45 59 5f 47 45 4e 20 20 20 20 30  TER_KEY_GEN    0
62d0: 78 30 30 30 30 30 33 37 30 0a 23 64 65 66 69 6e  x00000370.#defin
62e0: 65 20 43 4b 4d 5f 53 53 4c 33 5f 4d 41 53 54 45  e CKM_SSL3_MASTE
62f0: 52 5f 4b 45 59 5f 44 45 52 49 56 45 20 20 20 20  R_KEY_DERIVE    
6300: 20 30 78 30 30 30 30 30 33 37 31 0a 23 64 65 66   0x00000371.#def
6310: 69 6e 65 20 43 4b 4d 5f 53 53 4c 33 5f 4b 45 59  ine CKM_SSL3_KEY
6320: 5f 41 4e 44 5f 4d 41 43 5f 44 45 52 49 56 45 20  _AND_MAC_DERIVE 
6330: 20 20 20 30 78 30 30 30 30 30 33 37 32 0a 0a 2f     0x00000372../
6340: 2a 20 43 4b 4d 5f 53 53 4c 33 5f 4d 41 53 54 45  * CKM_SSL3_MASTE
6350: 52 5f 4b 45 59 5f 44 45 52 49 56 45 5f 44 48 2c  R_KEY_DERIVE_DH,
6360: 20 43 4b 4d 5f 54 4c 53 5f 50 52 45 5f 4d 41 53   CKM_TLS_PRE_MAS
6370: 54 45 52 5f 4b 45 59 5f 47 45 4e 2c 0a 20 2a 20  TER_KEY_GEN,. * 
6380: 43 4b 4d 5f 54 4c 53 5f 4d 41 53 54 45 52 5f 4b  CKM_TLS_MASTER_K
6390: 45 59 5f 44 45 52 49 56 45 2c 20 43 4b 4d 5f 54  EY_DERIVE, CKM_T
63a0: 4c 53 5f 4b 45 59 5f 41 4e 44 5f 4d 41 43 5f 44  LS_KEY_AND_MAC_D
63b0: 45 52 49 56 45 2c 20 61 6e 64 0a 20 2a 20 43 4b  ERIVE, and. * CK
63c0: 4d 5f 54 4c 53 5f 4d 41 53 54 45 52 5f 4b 45 59  M_TLS_MASTER_KEY
63d0: 5f 44 45 52 49 56 45 5f 44 48 20 61 72 65 20 6e  _DERIVE_DH are n
63e0: 65 77 20 66 6f 72 20 76 32 2e 31 31 20 2a 2f 0a  ew for v2.11 */.
63f0: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53 53 4c 33  #define CKM_SSL3
6400: 5f 4d 41 53 54 45 52 5f 4b 45 59 5f 44 45 52 49  _MASTER_KEY_DERI
6410: 56 45 5f 44 48 20 20 30 78 30 30 30 30 30 33 37  VE_DH  0x0000037
6420: 33 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 54 4c  3.#define CKM_TL
6430: 53 5f 50 52 45 5f 4d 41 53 54 45 52 5f 4b 45 59  S_PRE_MASTER_KEY
6440: 5f 47 45 4e 20 20 20 20 20 30 78 30 30 30 30 30  _GEN     0x00000
6450: 33 37 34 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  374.#define CKM_
6460: 54 4c 53 5f 4d 41 53 54 45 52 5f 4b 45 59 5f 44  TLS_MASTER_KEY_D
6470: 45 52 49 56 45 20 20 20 20 20 20 30 78 30 30 30  ERIVE      0x000
6480: 30 30 33 37 35 0a 23 64 65 66 69 6e 65 20 43 4b  00375.#define CK
6490: 4d 5f 54 4c 53 5f 4b 45 59 5f 41 4e 44 5f 4d 41  M_TLS_KEY_AND_MA
64a0: 43 5f 44 45 52 49 56 45 20 20 20 20 20 30 78 30  C_DERIVE     0x0
64b0: 30 30 30 30 33 37 36 0a 23 64 65 66 69 6e 65 20  0000376.#define 
64c0: 43 4b 4d 5f 54 4c 53 5f 4d 41 53 54 45 52 5f 4b  CKM_TLS_MASTER_K
64d0: 45 59 5f 44 45 52 49 56 45 5f 44 48 20 20 20 30  EY_DERIVE_DH   0
64e0: 78 30 30 30 30 30 33 37 37 0a 0a 23 64 65 66 69  x00000377..#defi
64f0: 6e 65 20 43 4b 4d 5f 53 53 4c 33 5f 4d 44 35 5f  ne CKM_SSL3_MD5_
6500: 4d 41 43 20 20 20 20 20 20 20 20 20 20 20 20 20  MAC             
6510: 20 20 30 78 30 30 30 30 30 33 38 30 0a 23 64 65    0x00000380.#de
6520: 66 69 6e 65 20 43 4b 4d 5f 53 53 4c 33 5f 53 48  fine CKM_SSL3_SH
6530: 41 31 5f 4d 41 43 20 20 20 20 20 20 20 20 20 20  A1_MAC          
6540: 20 20 20 20 30 78 30 30 30 30 30 33 38 31 0a 23      0x00000381.#
6550: 64 65 66 69 6e 65 20 43 4b 4d 5f 4d 44 35 5f 4b  define CKM_MD5_K
6560: 45 59 5f 44 45 52 49 56 41 54 49 4f 4e 20 20 20  EY_DERIVATION   
6570: 20 20 20 20 20 20 30 78 30 30 30 30 30 33 39 30        0x00000390
6580: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 4d 44 32  .#define CKM_MD2
6590: 5f 4b 45 59 5f 44 45 52 49 56 41 54 49 4f 4e 20  _KEY_DERIVATION 
65a0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 33          0x000003
65b0: 39 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53  91.#define CKM_S
65c0: 48 41 31 5f 4b 45 59 5f 44 45 52 49 56 41 54 49  HA1_KEY_DERIVATI
65d0: 4f 4e 20 20 20 20 20 20 20 20 30 78 30 30 30 30  ON        0x0000
65e0: 30 33 39 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d  0392.#define CKM
65f0: 5f 50 42 45 5f 4d 44 32 5f 44 45 53 5f 43 42 43  _PBE_MD2_DES_CBC
6600: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
6610: 30 30 30 33 41 30 0a 23 64 65 66 69 6e 65 20 43  0003A0.#define C
6620: 4b 4d 5f 50 42 45 5f 4d 44 35 5f 44 45 53 5f 43  KM_PBE_MD5_DES_C
6630: 42 43 20 20 20 20 20 20 20 20 20 20 20 20 30 78  BC            0x
6640: 30 30 30 30 30 33 41 31 0a 23 64 65 66 69 6e 65  000003A1.#define
6650: 20 43 4b 4d 5f 50 42 45 5f 4d 44 35 5f 43 41 53   CKM_PBE_MD5_CAS
6660: 54 5f 43 42 43 20 20 20 20 20 20 20 20 20 20 20  T_CBC           
6670: 30 78 30 30 30 30 30 33 41 32 0a 23 64 65 66 69  0x000003A2.#defi
6680: 6e 65 20 43 4b 4d 5f 50 42 45 5f 4d 44 35 5f 43  ne CKM_PBE_MD5_C
6690: 41 53 54 33 5f 43 42 43 20 20 20 20 20 20 20 20  AST3_CBC        
66a0: 20 20 30 78 30 30 30 30 30 33 41 33 0a 23 64 65    0x000003A3.#de
66b0: 66 69 6e 65 20 43 4b 4d 5f 50 42 45 5f 4d 44 35  fine CKM_PBE_MD5
66c0: 5f 43 41 53 54 35 5f 43 42 43 20 20 20 20 20 20  _CAST5_CBC      
66d0: 20 20 20 20 30 78 30 30 30 30 30 33 41 34 0a 23      0x000003A4.#
66e0: 64 65 66 69 6e 65 20 43 4b 4d 5f 50 42 45 5f 4d  define CKM_PBE_M
66f0: 44 35 5f 43 41 53 54 31 32 38 5f 43 42 43 20 20  D5_CAST128_CBC  
6700: 20 20 20 20 20 20 30 78 30 30 30 30 30 33 41 34        0x000003A4
6710: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 50 42 45  .#define CKM_PBE
6720: 5f 53 48 41 31 5f 43 41 53 54 35 5f 43 42 43 20  _SHA1_CAST5_CBC 
6730: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 33          0x000003
6740: 41 35 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 50  A5.#define CKM_P
6750: 42 45 5f 53 48 41 31 5f 43 41 53 54 31 32 38 5f  BE_SHA1_CAST128_
6760: 43 42 43 20 20 20 20 20 20 20 30 78 30 30 30 30  CBC       0x0000
6770: 30 33 41 35 0a 23 64 65 66 69 6e 65 20 43 4b 4d  03A5.#define CKM
6780: 5f 50 42 45 5f 53 48 41 31 5f 52 43 34 5f 31 32  _PBE_SHA1_RC4_12
6790: 38 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30  8           0x00
67a0: 30 30 30 33 41 36 0a 23 64 65 66 69 6e 65 20 43  0003A6.#define C
67b0: 4b 4d 5f 50 42 45 5f 53 48 41 31 5f 52 43 34 5f  KM_PBE_SHA1_RC4_
67c0: 34 30 20 20 20 20 20 20 20 20 20 20 20 20 30 78  40            0x
67d0: 30 30 30 30 30 33 41 37 0a 23 64 65 66 69 6e 65  000003A7.#define
67e0: 20 43 4b 4d 5f 50 42 45 5f 53 48 41 31 5f 44 45   CKM_PBE_SHA1_DE
67f0: 53 33 5f 45 44 45 5f 43 42 43 20 20 20 20 20 20  S3_EDE_CBC      
6800: 30 78 30 30 30 30 30 33 41 38 0a 23 64 65 66 69  0x000003A8.#defi
6810: 6e 65 20 43 4b 4d 5f 50 42 45 5f 53 48 41 31 5f  ne CKM_PBE_SHA1_
6820: 44 45 53 32 5f 45 44 45 5f 43 42 43 20 20 20 20  DES2_EDE_CBC    
6830: 20 20 30 78 30 30 30 30 30 33 41 39 0a 23 64 65    0x000003A9.#de
6840: 66 69 6e 65 20 43 4b 4d 5f 50 42 45 5f 53 48 41  fine CKM_PBE_SHA
6850: 31 5f 52 43 32 5f 31 32 38 5f 43 42 43 20 20 20  1_RC2_128_CBC   
6860: 20 20 20 20 30 78 30 30 30 30 30 33 41 41 0a 23      0x000003AA.#
6870: 64 65 66 69 6e 65 20 43 4b 4d 5f 50 42 45 5f 53  define CKM_PBE_S
6880: 48 41 31 5f 52 43 32 5f 34 30 5f 43 42 43 20 20  HA1_RC2_40_CBC  
6890: 20 20 20 20 20 20 30 78 30 30 30 30 30 33 41 42        0x000003AB
68a0: 0a 0a 2f 2a 20 43 4b 4d 5f 50 4b 43 53 35 5f 50  ../* CKM_PKCS5_P
68b0: 42 4b 44 32 20 69 73 20 6e 65 77 20 66 6f 72 20  BKD2 is new for 
68c0: 76 32 2e 31 30 20 2a 2f 0a 23 64 65 66 69 6e 65  v2.10 */.#define
68d0: 20 43 4b 4d 5f 50 4b 43 53 35 5f 50 42 4b 44 32   CKM_PKCS5_PBKD2
68e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
68f0: 30 78 30 30 30 30 30 33 42 30 0a 0a 23 64 65 66  0x000003B0..#def
6900: 69 6e 65 20 43 4b 4d 5f 50 42 41 5f 53 48 41 31  ine CKM_PBA_SHA1
6910: 5f 57 49 54 48 5f 53 48 41 31 5f 48 4d 41 43 20  _WITH_SHA1_HMAC 
6920: 20 20 20 30 78 30 30 30 30 30 33 43 30 0a 23 64     0x000003C0.#d
6930: 65 66 69 6e 65 20 43 4b 4d 5f 4b 45 59 5f 57 52  efine CKM_KEY_WR
6940: 41 50 5f 4c 59 4e 4b 53 20 20 20 20 20 20 20 20  AP_LYNKS        
6950: 20 20 20 20 20 30 78 30 30 30 30 30 34 30 30 0a       0x00000400.
6960: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 4b 45 59 5f  #define CKM_KEY_
6970: 57 52 41 50 5f 53 45 54 5f 4f 41 45 50 20 20 20  WRAP_SET_OAEP   
6980: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 34 30         0x0000040
6990: 31 0a 0a 2f 2a 20 46 6f 72 74 65 7a 7a 61 20 6d  1../* Fortezza m
69a0: 65 63 68 61 6e 69 73 6d 73 20 2a 2f 0a 23 64 65  echanisms */.#de
69b0: 66 69 6e 65 20 43 4b 4d 5f 53 4b 49 50 4a 41 43  fine CKM_SKIPJAC
69c0: 4b 5f 4b 45 59 5f 47 45 4e 20 20 20 20 20 20 20  K_KEY_GEN       
69d0: 20 20 20 20 30 78 30 30 30 30 31 30 30 30 0a 23      0x00001000.#
69e0: 64 65 66 69 6e 65 20 43 4b 4d 5f 53 4b 49 50 4a  define CKM_SKIPJ
69f0: 41 43 4b 5f 45 43 42 36 34 20 20 20 20 20 20 20  ACK_ECB64       
6a00: 20 20 20 20 20 20 30 78 30 30 30 30 31 30 30 31        0x00001001
6a10: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53 4b 49  .#define CKM_SKI
6a20: 50 4a 41 43 4b 5f 43 42 43 36 34 20 20 20 20 20  PJACK_CBC64     
6a30: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 31 30          0x000010
6a40: 30 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53  02.#define CKM_S
6a50: 4b 49 50 4a 41 43 4b 5f 4f 46 42 36 34 20 20 20  KIPJACK_OFB64   
6a60: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
6a70: 31 30 30 33 0a 23 64 65 66 69 6e 65 20 43 4b 4d  1003.#define CKM
6a80: 5f 53 4b 49 50 4a 41 43 4b 5f 43 46 42 36 34 20  _SKIPJACK_CFB64 
6a90: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
6aa0: 30 30 31 30 30 34 0a 23 64 65 66 69 6e 65 20 43  001004.#define C
6ab0: 4b 4d 5f 53 4b 49 50 4a 41 43 4b 5f 43 46 42 33  KM_SKIPJACK_CFB3
6ac0: 32 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78  2             0x
6ad0: 30 30 30 30 31 30 30 35 0a 23 64 65 66 69 6e 65  00001005.#define
6ae0: 20 43 4b 4d 5f 53 4b 49 50 4a 41 43 4b 5f 43 46   CKM_SKIPJACK_CF
6af0: 42 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20  B16             
6b00: 30 78 30 30 30 30 31 30 30 36 0a 23 64 65 66 69  0x00001006.#defi
6b10: 6e 65 20 43 4b 4d 5f 53 4b 49 50 4a 41 43 4b 5f  ne CKM_SKIPJACK_
6b20: 43 46 42 38 20 20 20 20 20 20 20 20 20 20 20 20  CFB8            
6b30: 20 20 30 78 30 30 30 30 31 30 30 37 0a 23 64 65    0x00001007.#de
6b40: 66 69 6e 65 20 43 4b 4d 5f 53 4b 49 50 4a 41 43  fine CKM_SKIPJAC
6b50: 4b 5f 57 52 41 50 20 20 20 20 20 20 20 20 20 20  K_WRAP          
6b60: 20 20 20 20 30 78 30 30 30 30 31 30 30 38 0a 23      0x00001008.#
6b70: 64 65 66 69 6e 65 20 43 4b 4d 5f 53 4b 49 50 4a  define CKM_SKIPJ
6b80: 41 43 4b 5f 50 52 49 56 41 54 45 5f 57 52 41 50  ACK_PRIVATE_WRAP
6b90: 20 20 20 20 20 20 30 78 30 30 30 30 31 30 30 39        0x00001009
6ba0: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 53 4b 49  .#define CKM_SKI
6bb0: 50 4a 41 43 4b 5f 52 45 4c 41 59 58 20 20 20 20  PJACK_RELAYX    
6bc0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 31 30          0x000010
6bd0: 30 61 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 4b  0a.#define CKM_K
6be0: 45 41 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e 20  EA_KEY_PAIR_GEN 
6bf0: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
6c00: 31 30 31 30 0a 23 64 65 66 69 6e 65 20 43 4b 4d  1010.#define CKM
6c10: 5f 4b 45 41 5f 4b 45 59 5f 44 45 52 49 56 45 20  _KEA_KEY_DERIVE 
6c20: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
6c30: 30 30 31 30 31 31 0a 23 64 65 66 69 6e 65 20 43  001011.#define C
6c40: 4b 4d 5f 46 4f 52 54 45 5a 5a 41 5f 54 49 4d 45  KM_FORTEZZA_TIME
6c50: 53 54 41 4d 50 20 20 20 20 20 20 20 20 20 30 78  STAMP         0x
6c60: 30 30 30 30 31 30 32 30 0a 23 64 65 66 69 6e 65  00001020.#define
6c70: 20 43 4b 4d 5f 42 41 54 4f 4e 5f 4b 45 59 5f 47   CKM_BATON_KEY_G
6c80: 45 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20  EN              
6c90: 30 78 30 30 30 30 31 30 33 30 0a 23 64 65 66 69  0x00001030.#defi
6ca0: 6e 65 20 43 4b 4d 5f 42 41 54 4f 4e 5f 45 43 42  ne CKM_BATON_ECB
6cb0: 31 32 38 20 20 20 20 20 20 20 20 20 20 20 20 20  128             
6cc0: 20 20 30 78 30 30 30 30 31 30 33 31 0a 23 64 65    0x00001031.#de
6cd0: 66 69 6e 65 20 43 4b 4d 5f 42 41 54 4f 4e 5f 45  fine CKM_BATON_E
6ce0: 43 42 39 36 20 20 20 20 20 20 20 20 20 20 20 20  CB96            
6cf0: 20 20 20 20 30 78 30 30 30 30 31 30 33 32 0a 23      0x00001032.#
6d00: 64 65 66 69 6e 65 20 43 4b 4d 5f 42 41 54 4f 4e  define CKM_BATON
6d10: 5f 43 42 43 31 32 38 20 20 20 20 20 20 20 20 20  _CBC128         
6d20: 20 20 20 20 20 20 30 78 30 30 30 30 31 30 33 33        0x00001033
6d30: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 42 41 54  .#define CKM_BAT
6d40: 4f 4e 5f 43 4f 55 4e 54 45 52 20 20 20 20 20 20  ON_COUNTER      
6d50: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 31 30          0x000010
6d60: 33 34 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 42  34.#define CKM_B
6d70: 41 54 4f 4e 5f 53 48 55 46 46 4c 45 20 20 20 20  ATON_SHUFFLE    
6d80: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
6d90: 31 30 33 35 0a 23 64 65 66 69 6e 65 20 43 4b 4d  1035.#define CKM
6da0: 5f 42 41 54 4f 4e 5f 57 52 41 50 20 20 20 20 20  _BATON_WRAP     
6db0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
6dc0: 30 30 31 30 33 36 0a 0a 2f 2a 20 43 4b 4d 5f 45  001036../* CKM_E
6dd0: 43 44 53 41 5f 4b 45 59 5f 50 41 49 52 5f 47 45  CDSA_KEY_PAIR_GE
6de0: 4e 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20  N is deprecated 
6df0: 69 6e 20 76 32 2e 31 31 2c 0a 20 2a 20 43 4b 4d  in v2.11,. * CKM
6e00: 5f 45 43 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e  _EC_KEY_PAIR_GEN
6e10: 20 69 73 20 70 72 65 66 65 72 72 65 64 20 2a 2f   is preferred */
6e20: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 45 43 44  .#define CKM_ECD
6e30: 53 41 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e 20  SA_KEY_PAIR_GEN 
6e40: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 31 30          0x000010
6e50: 34 30 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 45  40.#define CKM_E
6e60: 43 5f 4b 45 59 5f 50 41 49 52 5f 47 45 4e 20 20  C_KEY_PAIR_GEN  
6e70: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
6e80: 31 30 34 30 0a 0a 23 64 65 66 69 6e 65 20 43 4b  1040..#define CK
6e90: 4d 5f 45 43 44 53 41 20 20 20 20 20 20 20 20 20  M_ECDSA         
6ea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
6eb0: 30 30 30 31 30 34 31 0a 23 64 65 66 69 6e 65 20  0001041.#define 
6ec0: 43 4b 4d 5f 45 43 44 53 41 5f 53 48 41 31 20 20  CKM_ECDSA_SHA1  
6ed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
6ee0: 78 30 30 30 30 31 30 34 32 0a 0a 2f 2a 20 43 4b  x00001042../* CK
6ef0: 4d 5f 45 43 44 48 31 5f 44 45 52 49 56 45 2c 20  M_ECDH1_DERIVE, 
6f00: 43 4b 4d 5f 45 43 44 48 31 5f 43 4f 46 41 43 54  CKM_ECDH1_COFACT
6f10: 4f 52 5f 44 45 52 49 56 45 2c 20 61 6e 64 20 43  OR_DERIVE, and C
6f20: 4b 4d 5f 45 43 4d 51 56 5f 44 45 52 49 56 45 0a  KM_ECMQV_DERIVE.
6f30: 20 2a 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76   * are new for v
6f40: 32 2e 31 31 20 2a 2f 0a 23 64 65 66 69 6e 65 20  2.11 */.#define 
6f50: 43 4b 4d 5f 45 43 44 48 31 5f 44 45 52 49 56 45  CKM_ECDH1_DERIVE
6f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
6f70: 78 30 30 30 30 31 30 35 30 0a 23 64 65 66 69 6e  x00001050.#defin
6f80: 65 20 43 4b 4d 5f 45 43 44 48 31 5f 43 4f 46 41  e CKM_ECDH1_COFA
6f90: 43 54 4f 52 5f 44 45 52 49 56 45 20 20 20 20 20  CTOR_DERIVE     
6fa0: 20 30 78 30 30 30 30 31 30 35 31 0a 23 64 65 66   0x00001051.#def
6fb0: 69 6e 65 20 43 4b 4d 5f 45 43 4d 51 56 5f 44 45  ine CKM_ECMQV_DE
6fc0: 52 49 56 45 20 20 20 20 20 20 20 20 20 20 20 20  RIVE            
6fd0: 20 20 20 30 78 30 30 30 30 31 30 35 32 0a 0a 23     0x00001052..#
6fe0: 64 65 66 69 6e 65 20 43 4b 4d 5f 4a 55 4e 49 50  define CKM_JUNIP
6ff0: 45 52 5f 4b 45 59 5f 47 45 4e 20 20 20 20 20 20  ER_KEY_GEN      
7000: 20 20 20 20 20 20 30 78 30 30 30 30 31 30 36 30        0x00001060
7010: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 4a 55 4e  .#define CKM_JUN
7020: 49 50 45 52 5f 45 43 42 31 32 38 20 20 20 20 20  IPER_ECB128     
7030: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 31 30          0x000010
7040: 36 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 4a  61.#define CKM_J
7050: 55 4e 49 50 45 52 5f 43 42 43 31 32 38 20 20 20  UNIPER_CBC128   
7060: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
7070: 31 30 36 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d  1062.#define CKM
7080: 5f 4a 55 4e 49 50 45 52 5f 43 4f 55 4e 54 45 52  _JUNIPER_COUNTER
7090: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
70a0: 30 30 31 30 36 33 0a 23 64 65 66 69 6e 65 20 43  001063.#define C
70b0: 4b 4d 5f 4a 55 4e 49 50 45 52 5f 53 48 55 46 46  KM_JUNIPER_SHUFF
70c0: 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 30 78  LE            0x
70d0: 30 30 30 30 31 30 36 34 0a 23 64 65 66 69 6e 65  00001064.#define
70e0: 20 43 4b 4d 5f 4a 55 4e 49 50 45 52 5f 57 52 41   CKM_JUNIPER_WRA
70f0: 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  P               
7100: 30 78 30 30 30 30 31 30 36 35 0a 23 64 65 66 69  0x00001065.#defi
7110: 6e 65 20 43 4b 4d 5f 46 41 53 54 48 41 53 48 20  ne CKM_FASTHASH 
7120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7130: 20 20 30 78 30 30 30 30 31 30 37 30 0a 0a 2f 2a    0x00001070../*
7140: 20 43 4b 4d 5f 41 45 53 5f 4b 45 59 5f 47 45 4e   CKM_AES_KEY_GEN
7150: 2c 20 43 4b 4d 5f 41 45 53 5f 45 43 42 2c 20 43  , CKM_AES_ECB, C
7160: 4b 4d 5f 41 45 53 5f 43 42 43 2c 20 43 4b 4d 5f  KM_AES_CBC, CKM_
7170: 41 45 53 5f 4d 41 43 2c 0a 20 2a 20 43 4b 4d 5f  AES_MAC,. * CKM_
7180: 41 45 53 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 2c  AES_MAC_GENERAL,
7190: 20 43 4b 4d 5f 41 45 53 5f 43 42 43 5f 50 41 44   CKM_AES_CBC_PAD
71a0: 2c 20 43 4b 4d 5f 44 53 41 5f 50 41 52 41 4d 45  , CKM_DSA_PARAME
71b0: 54 45 52 5f 47 45 4e 2c 0a 20 2a 20 43 4b 4d 5f  TER_GEN,. * CKM_
71c0: 44 48 5f 50 4b 43 53 5f 50 41 52 41 4d 45 54 45  DH_PKCS_PARAMETE
71d0: 52 5f 47 45 4e 2c 20 61 6e 64 20 43 4b 4d 5f 58  R_GEN, and CKM_X
71e0: 39 5f 34 32 5f 44 48 5f 50 41 52 41 4d 45 54 45  9_42_DH_PARAMETE
71f0: 52 5f 47 45 4e 20 61 72 65 0a 20 2a 20 6e 65 77  R_GEN are. * new
7200: 20 66 6f 72 20 76 32 2e 31 31 20 2a 2f 0a 23 64   for v2.11 */.#d
7210: 65 66 69 6e 65 20 43 4b 4d 5f 41 45 53 5f 4b 45  efine CKM_AES_KE
7220: 59 5f 47 45 4e 20 20 20 20 20 20 20 20 20 20 20  Y_GEN           
7230: 20 20 20 20 20 30 78 30 30 30 30 31 30 38 30 0a       0x00001080.
7240: 23 64 65 66 69 6e 65 20 43 4b 4d 5f 41 45 53 5f  #define CKM_AES_
7250: 45 43 42 20 20 20 20 20 20 20 20 20 20 20 20 20  ECB             
7260: 20 20 20 20 20 20 20 30 78 30 30 30 30 31 30 38         0x0000108
7270: 31 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 41 45  1.#define CKM_AE
7280: 53 5f 43 42 43 20 20 20 20 20 20 20 20 20 20 20  S_CBC           
7290: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 31           0x00001
72a0: 30 38 32 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f  082.#define CKM_
72b0: 41 45 53 5f 4d 41 43 20 20 20 20 20 20 20 20 20  AES_MAC         
72c0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
72d0: 30 31 30 38 33 0a 23 64 65 66 69 6e 65 20 43 4b  01083.#define CK
72e0: 4d 5f 41 45 53 5f 4d 41 43 5f 47 45 4e 45 52 41  M_AES_MAC_GENERA
72f0: 4c 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30  L            0x0
7300: 30 30 30 31 30 38 34 0a 23 64 65 66 69 6e 65 20  0001084.#define 
7310: 43 4b 4d 5f 41 45 53 5f 43 42 43 5f 50 41 44 20  CKM_AES_CBC_PAD 
7320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
7330: 78 30 30 30 30 31 30 38 35 0a 23 64 65 66 69 6e  x00001085.#defin
7340: 65 20 43 4b 4d 5f 44 53 41 5f 50 41 52 41 4d 45  e CKM_DSA_PARAME
7350: 54 45 52 5f 47 45 4e 20 20 20 20 20 20 20 20 20  TER_GEN         
7360: 20 30 78 30 30 30 30 32 30 30 30 0a 23 64 65 66   0x00002000.#def
7370: 69 6e 65 20 43 4b 4d 5f 44 48 5f 50 4b 43 53 5f  ine CKM_DH_PKCS_
7380: 50 41 52 41 4d 45 54 45 52 5f 47 45 4e 20 20 20  PARAMETER_GEN   
7390: 20 20 20 30 78 30 30 30 30 32 30 30 31 0a 23 64     0x00002001.#d
73a0: 65 66 69 6e 65 20 43 4b 4d 5f 58 39 5f 34 32 5f  efine CKM_X9_42_
73b0: 44 48 5f 50 41 52 41 4d 45 54 45 52 5f 47 45 4e  DH_PARAMETER_GEN
73c0: 20 20 20 20 20 30 78 30 30 30 30 32 30 30 32 0a       0x00002002.
73d0: 0a 23 64 65 66 69 6e 65 20 43 4b 4d 5f 56 45 4e  .#define CKM_VEN
73e0: 44 4f 52 5f 44 45 46 49 4e 45 44 20 20 20 20 20  DOR_DEFINED     
73f0: 20 20 20 20 20 20 20 20 30 78 38 30 30 30 30 30          0x800000
7400: 30 30 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 4d  00..typedef CK_M
7410: 45 43 48 41 4e 49 53 4d 5f 54 59 50 45 20 43 4b  ECHANISM_TYPE CK
7420: 5f 50 54 52 20 43 4b 5f 4d 45 43 48 41 4e 49 53  _PTR CK_MECHANIS
7430: 4d 5f 54 59 50 45 5f 50 54 52 3b 0a 0a 0a 2f 2a  M_TYPE_PTR;.../*
7440: 20 43 4b 5f 4d 45 43 48 41 4e 49 53 4d 20 69 73   CK_MECHANISM is
7450: 20 61 20 73 74 72 75 63 74 75 72 65 20 74 68 61   a structure tha
7460: 74 20 73 70 65 63 69 66 69 65 73 20 61 20 70 61  t specifies a pa
7470: 72 74 69 63 75 6c 61 72 0a 20 2a 20 6d 65 63 68  rticular. * mech
7480: 61 6e 69 73 6d 20 20 2a 2f 0a 74 79 70 65 64 65  anism  */.typede
7490: 66 20 73 74 72 75 63 74 20 43 4b 5f 4d 45 43 48  f struct CK_MECH
74a0: 41 4e 49 53 4d 20 7b 0a 20 20 43 4b 5f 4d 45 43  ANISM {.  CK_MEC
74b0: 48 41 4e 49 53 4d 5f 54 59 50 45 20 6d 65 63 68  HANISM_TYPE mech
74c0: 61 6e 69 73 6d 3b 0a 20 20 43 4b 5f 56 4f 49 44  anism;.  CK_VOID
74d0: 5f 50 54 52 20 20 20 20 20 20 20 70 50 61 72 61  _PTR       pPara
74e0: 6d 65 74 65 72 3b 0a 0a 20 20 2f 2a 20 75 6c 50  meter;..  /* ulP
74f0: 61 72 61 6d 65 74 65 72 4c 65 6e 20 77 61 73 20  arameterLen was 
7500: 63 68 61 6e 67 65 64 20 66 72 6f 6d 20 43 4b 5f  changed from CK_
7510: 55 53 48 4f 52 54 20 74 6f 20 43 4b 5f 55 4c 4f  USHORT to CK_ULO
7520: 4e 47 20 66 6f 72 0a 20 20 20 2a 20 76 32 2e 30  NG for.   * v2.0
7530: 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20   */.  CK_ULONG  
7540: 20 20 20 20 20 20 20 20 75 6c 50 61 72 61 6d 65          ulParame
7550: 74 65 72 4c 65 6e 3b 20 20 2f 2a 20 69 6e 20 62  terLen;  /* in b
7560: 79 74 65 73 20 2a 2f 0a 7d 20 43 4b 5f 4d 45 43  ytes */.} CK_MEC
7570: 48 41 4e 49 53 4d 3b 0a 0a 74 79 70 65 64 65 66  HANISM;..typedef
7580: 20 43 4b 5f 4d 45 43 48 41 4e 49 53 4d 20 43 4b   CK_MECHANISM CK
7590: 5f 50 54 52 20 43 4b 5f 4d 45 43 48 41 4e 49 53  _PTR CK_MECHANIS
75a0: 4d 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f 4d  M_PTR;.../* CK_M
75b0: 45 43 48 41 4e 49 53 4d 5f 49 4e 46 4f 20 70 72  ECHANISM_INFO pr
75c0: 6f 76 69 64 65 73 20 69 6e 66 6f 72 6d 61 74 69  ovides informati
75d0: 6f 6e 20 61 62 6f 75 74 20 61 20 70 61 72 74 69  on about a parti
75e0: 63 75 6c 61 72 0a 20 2a 20 6d 65 63 68 61 6e 69  cular. * mechani
75f0: 73 6d 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74  sm */.typedef st
7600: 72 75 63 74 20 43 4b 5f 4d 45 43 48 41 4e 49 53  ruct CK_MECHANIS
7610: 4d 5f 49 4e 46 4f 20 7b 0a 20 20 20 20 43 4b 5f  M_INFO {.    CK_
7620: 55 4c 4f 4e 47 20 20 20 20 75 6c 4d 69 6e 4b 65  ULONG    ulMinKe
7630: 79 53 69 7a 65 3b 0a 20 20 20 20 43 4b 5f 55 4c  ySize;.    CK_UL
7640: 4f 4e 47 20 20 20 20 75 6c 4d 61 78 4b 65 79 53  ONG    ulMaxKeyS
7650: 69 7a 65 3b 0a 20 20 20 20 43 4b 5f 46 4c 41 47  ize;.    CK_FLAG
7660: 53 20 20 20 20 66 6c 61 67 73 3b 0a 7d 20 43 4b  S    flags;.} CK
7670: 5f 4d 45 43 48 41 4e 49 53 4d 5f 49 4e 46 4f 3b  _MECHANISM_INFO;
7680: 0a 0a 2f 2a 20 54 68 65 20 66 6c 61 67 73 20 61  ../* The flags a
7690: 72 65 20 64 65 66 69 6e 65 64 20 61 73 20 66 6f  re defined as fo
76a0: 6c 6c 6f 77 73 3a 0a 20 2a 20 20 20 20 20 20 42  llows:. *      B
76b0: 69 74 20 46 6c 61 67 20 20 20 20 20 20 20 20 20  it Flag         
76c0: 20 20 20 20 20 20 4d 61 73 6b 20 20 20 20 20 20        Mask      
76d0: 20 20 4d 65 61 6e 69 6e 67 20 2a 2f 0a 23 64 65    Meaning */.#de
76e0: 66 69 6e 65 20 43 4b 46 5f 48 57 20 20 20 20 20  fine CKF_HW     
76f0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
7700: 30 30 30 30 30 31 20 20 2f 2a 20 70 65 72 66 6f  000001  /* perfo
7710: 72 6d 65 64 20 62 79 20 48 57 20 2a 2f 0a 0a 2f  rmed by HW */../
7720: 2a 20 54 68 65 20 66 6c 61 67 73 20 43 4b 46 5f  * The flags CKF_
7730: 45 4e 43 52 59 50 54 2c 20 43 4b 46 5f 44 45 43  ENCRYPT, CKF_DEC
7740: 52 59 50 54 2c 20 43 4b 46 5f 44 49 47 45 53 54  RYPT, CKF_DIGEST
7750: 2c 20 43 4b 46 5f 53 49 47 4e 2c 0a 20 2a 20 43  , CKF_SIGN,. * C
7760: 4b 47 5f 53 49 47 4e 5f 52 45 43 4f 56 45 52 2c  KG_SIGN_RECOVER,
7770: 20 43 4b 46 5f 56 45 52 49 46 59 2c 20 43 4b 46   CKF_VERIFY, CKF
7780: 5f 56 45 52 49 46 59 5f 52 45 43 4f 56 45 52 2c  _VERIFY_RECOVER,
7790: 0a 20 2a 20 43 4b 46 5f 47 45 4e 45 52 41 54 45  . * CKF_GENERATE
77a0: 2c 20 43 4b 46 5f 47 45 4e 45 52 41 54 45 5f 4b  , CKF_GENERATE_K
77b0: 45 59 5f 50 41 49 52 2c 20 43 4b 46 5f 57 52 41  EY_PAIR, CKF_WRA
77c0: 50 2c 20 43 4b 46 5f 55 4e 57 52 41 50 2c 0a 20  P, CKF_UNWRAP,. 
77d0: 2a 20 61 6e 64 20 43 4b 46 5f 44 45 52 49 56 45  * and CKF_DERIVE
77e0: 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32 2e   are new for v2.
77f0: 30 2e 20 20 54 68 65 79 20 73 70 65 63 69 66 79  0.  They specify
7800: 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 0a   whether or not.
7810: 20 2a 20 61 20 6d 65 63 68 61 6e 69 73 6d 20 63   * a mechanism c
7820: 61 6e 20 62 65 20 75 73 65 64 20 66 6f 72 20 61  an be used for a
7830: 20 70 61 72 74 69 63 75 6c 61 72 20 74 61 73 6b   particular task
7840: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f   */.#define CKF_
7850: 45 4e 43 52 59 50 54 20 20 20 20 20 20 20 20 20  ENCRYPT         
7860: 20 20 20 30 78 30 30 30 30 30 31 30 30 0a 23 64     0x00000100.#d
7870: 65 66 69 6e 65 20 43 4b 46 5f 44 45 43 52 59 50  efine CKF_DECRYP
7880: 54 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30  T            0x0
7890: 30 30 30 30 32 30 30 0a 23 64 65 66 69 6e 65 20  0000200.#define 
78a0: 43 4b 46 5f 44 49 47 45 53 54 20 20 20 20 20 20  CKF_DIGEST      
78b0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 34 30         0x0000040
78c0: 30 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 53 49  0.#define CKF_SI
78d0: 47 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20  GN              
78e0: 20 30 78 30 30 30 30 30 38 30 30 0a 23 64 65 66   0x00000800.#def
78f0: 69 6e 65 20 43 4b 46 5f 53 49 47 4e 5f 52 45 43  ine CKF_SIGN_REC
7900: 4f 56 45 52 20 20 20 20 20 20 20 30 78 30 30 30  OVER       0x000
7910: 30 31 30 30 30 0a 23 64 65 66 69 6e 65 20 43 4b  01000.#define CK
7920: 46 5f 56 45 52 49 46 59 20 20 20 20 20 20 20 20  F_VERIFY        
7930: 20 20 20 20 20 30 78 30 30 30 30 32 30 30 30 0a       0x00002000.
7940: 23 64 65 66 69 6e 65 20 43 4b 46 5f 56 45 52 49  #define CKF_VERI
7950: 46 59 5f 52 45 43 4f 56 45 52 20 20 20 20 20 30  FY_RECOVER     0
7960: 78 30 30 30 30 34 30 30 30 0a 23 64 65 66 69 6e  x00004000.#defin
7970: 65 20 43 4b 46 5f 47 45 4e 45 52 41 54 45 20 20  e CKF_GENERATE  
7980: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 38           0x00008
7990: 30 30 30 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f  000.#define CKF_
79a0: 47 45 4e 45 52 41 54 45 5f 4b 45 59 5f 50 41 49  GENERATE_KEY_PAI
79b0: 52 20 20 30 78 30 30 30 31 30 30 30 30 0a 23 64  R  0x00010000.#d
79c0: 65 66 69 6e 65 20 43 4b 46 5f 57 52 41 50 20 20  efine CKF_WRAP  
79d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
79e0: 30 30 32 30 30 30 30 0a 23 64 65 66 69 6e 65 20  0020000.#define 
79f0: 43 4b 46 5f 55 4e 57 52 41 50 20 20 20 20 20 20  CKF_UNWRAP      
7a00: 20 20 20 20 20 20 20 30 78 30 30 30 34 30 30 30         0x0004000
7a10: 30 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 44 45  0.#define CKF_DE
7a20: 52 49 56 45 20 20 20 20 20 20 20 20 20 20 20 20  RIVE            
7a30: 20 30 78 30 30 30 38 30 30 30 30 0a 0a 2f 2a 20   0x00080000../* 
7a40: 43 4b 46 5f 45 43 5f 46 5f 50 2c 20 43 4b 46 5f  CKF_EC_F_P, CKF_
7a50: 45 43 5f 46 5f 32 4d 2c 20 43 4b 46 5f 45 43 5f  EC_F_2M, CKF_EC_
7a60: 45 43 50 41 52 41 4d 45 54 45 52 53 2c 20 43 4b  ECPARAMETERS, CK
7a70: 46 5f 45 43 5f 4e 41 4d 45 44 43 55 52 56 45 2c  F_EC_NAMEDCURVE,
7a80: 0a 20 2a 20 43 4b 46 5f 45 43 5f 55 4e 43 4f 4d  . * CKF_EC_UNCOM
7a90: 50 52 45 53 53 2c 20 61 6e 64 20 43 4b 46 5f 45  PRESS, and CKF_E
7aa0: 43 5f 43 4f 4d 50 52 45 53 53 20 61 72 65 20 6e  C_COMPRESS are n
7ab0: 65 77 20 66 6f 72 20 76 32 2e 31 31 2e 20 54 68  ew for v2.11. Th
7ac0: 65 79 0a 20 2a 20 64 65 73 63 72 69 62 65 20 61  ey. * describe a
7ad0: 20 74 6f 6b 65 6e 27 73 20 45 43 20 63 61 70 61   token's EC capa
7ae0: 62 69 6c 69 74 69 65 73 20 6e 6f 74 20 61 76 61  bilities not ava
7af0: 69 6c 61 62 6c 65 20 69 6e 20 6d 65 63 68 61 6e  ilable in mechan
7b00: 69 73 6d 0a 20 2a 20 69 6e 66 6f 72 6d 61 74 69  ism. * informati
7b10: 6f 6e 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  on. */.#define C
7b20: 4b 46 5f 45 43 5f 46 5f 50 09 20 20 20 20 20 20  KF_EC_F_P.      
7b30: 20 20 20 20 20 30 78 30 30 31 30 30 30 30 30 0a       0x00100000.
7b40: 23 64 65 66 69 6e 65 20 43 4b 46 5f 45 43 5f 46  #define CKF_EC_F
7b50: 5f 32 4d 09 20 20 20 20 20 20 20 20 20 20 20 30  _2M.           0
7b60: 78 30 30 32 30 30 30 30 30 0a 23 64 65 66 69 6e  x00200000.#defin
7b70: 65 20 43 4b 46 5f 45 43 5f 45 43 50 41 52 41 4d  e CKF_EC_ECPARAM
7b80: 45 54 45 52 53 09 20 20 20 30 78 30 30 34 30 30  ETERS.   0x00400
7b90: 30 30 30 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f  000.#define CKF_
7ba0: 45 43 5f 4e 41 4d 45 44 43 55 52 56 45 09 20 20  EC_NAMEDCURVE.  
7bb0: 20 30 78 30 30 38 30 30 30 30 30 0a 23 64 65 66   0x00800000.#def
7bc0: 69 6e 65 20 43 4b 46 5f 45 43 5f 55 4e 43 4f 4d  ine CKF_EC_UNCOM
7bd0: 50 52 45 53 53 09 20 20 20 30 78 30 31 30 30 30  PRESS.   0x01000
7be0: 30 30 30 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f  000.#define CKF_
7bf0: 45 43 5f 43 4f 4d 50 52 45 53 53 09 20 20 20 20  EC_COMPRESS.    
7c00: 20 20 20 30 78 30 32 30 30 30 30 30 30 0a 0a 23     0x02000000..#
7c10: 64 65 66 69 6e 65 20 43 4b 46 5f 45 58 54 45 4e  define CKF_EXTEN
7c20: 53 49 4f 4e 20 20 20 20 20 20 20 20 20 20 30 78  SION          0x
7c30: 38 30 30 30 30 30 30 30 20 20 2f 2a 20 46 41 4c  80000000  /* FAL
7c40: 53 45 20 66 6f 72 20 32 2e 30 31 20 2a 2f 0a 0a  SE for 2.01 */..
7c50: 74 79 70 65 64 65 66 20 43 4b 5f 4d 45 43 48 41  typedef CK_MECHA
7c60: 4e 49 53 4d 5f 49 4e 46 4f 20 43 4b 5f 50 54 52  NISM_INFO CK_PTR
7c70: 20 43 4b 5f 4d 45 43 48 41 4e 49 53 4d 5f 49 4e   CK_MECHANISM_IN
7c80: 46 4f 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f  FO_PTR;.../* CK_
7c90: 52 56 20 69 73 20 61 20 76 61 6c 75 65 20 74 68  RV is a value th
7ca0: 61 74 20 69 64 65 6e 74 69 66 69 65 73 20 74 68  at identifies th
7cb0: 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 6f  e return value o
7cc0: 66 20 61 0a 20 2a 20 43 72 79 70 74 6f 6b 69 20  f a. * Cryptoki 
7cd0: 66 75 6e 63 74 69 6f 6e 20 2a 2f 0a 2f 2a 20 43  function */./* C
7ce0: 4b 5f 52 56 20 77 61 73 20 63 68 61 6e 67 65 64  K_RV was changed
7cf0: 20 66 72 6f 6d 20 43 4b 5f 55 53 48 4f 52 54 20   from CK_USHORT 
7d00: 74 6f 20 43 4b 5f 55 4c 4f 4e 47 20 66 6f 72 20  to CK_ULONG for 
7d10: 76 32 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66 20  v2.0 */.typedef 
7d20: 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20  CK_ULONG        
7d30: 20 20 43 4b 5f 52 56 3b 0a 0a 23 64 65 66 69 6e    CK_RV;..#defin
7d40: 65 20 43 4b 52 5f 4f 4b 20 20 20 20 20 20 20 20  e CKR_OK        
7d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7d60: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
7d70: 30 30 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 43  00.#define CKR_C
7d80: 41 4e 43 45 4c 20 20 20 20 20 20 20 20 20 20 20  ANCEL           
7d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7da0: 20 30 78 30 30 30 30 30 30 30 31 0a 23 64 65 66   0x00000001.#def
7db0: 69 6e 65 20 43 4b 52 5f 48 4f 53 54 5f 4d 45 4d  ine CKR_HOST_MEM
7dc0: 4f 52 59 20 20 20 20 20 20 20 20 20 20 20 20 20  ORY             
7dd0: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
7de0: 30 30 30 32 0a 23 64 65 66 69 6e 65 20 43 4b 52  0002.#define CKR
7df0: 5f 53 4c 4f 54 5f 49 44 5f 49 4e 56 41 4c 49 44  _SLOT_ID_INVALID
7e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7e10: 20 20 20 30 78 30 30 30 30 30 30 30 33 0a 0a 2f     0x00000003../
7e20: 2a 20 43 4b 52 5f 46 4c 41 47 53 5f 49 4e 56 41  * CKR_FLAGS_INVA
7e30: 4c 49 44 20 77 61 73 20 72 65 6d 6f 76 65 64 20  LID was removed 
7e40: 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 0a 2f 2a 20  for v2.0 */../* 
7e50: 43 4b 52 5f 47 45 4e 45 52 41 4c 5f 45 52 52 4f  CKR_GENERAL_ERRO
7e60: 52 20 61 6e 64 20 43 4b 52 5f 46 55 4e 43 54 49  R and CKR_FUNCTI
7e70: 4f 4e 5f 46 41 49 4c 45 44 20 61 72 65 20 6e 65  ON_FAILED are ne
7e80: 77 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 23 64  w for v2.0 */.#d
7e90: 65 66 69 6e 65 20 43 4b 52 5f 47 45 4e 45 52 41  efine CKR_GENERA
7ea0: 4c 5f 45 52 52 4f 52 20 20 20 20 20 20 20 20 20  L_ERROR         
7eb0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
7ec0: 30 30 30 30 30 35 0a 23 64 65 66 69 6e 65 20 43  000005.#define C
7ed0: 4b 52 5f 46 55 4e 43 54 49 4f 4e 5f 46 41 49 4c  KR_FUNCTION_FAIL
7ee0: 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ED              
7ef0: 20 20 20 20 20 30 78 30 30 30 30 30 30 30 36 0a       0x00000006.
7f00: 0a 2f 2a 20 43 4b 52 5f 41 52 47 55 4d 45 4e 54  ./* CKR_ARGUMENT
7f10: 53 5f 42 41 44 2c 20 43 4b 52 5f 4e 4f 5f 45 56  S_BAD, CKR_NO_EV
7f20: 45 4e 54 2c 20 43 4b 52 5f 4e 45 45 44 5f 54 4f  ENT, CKR_NEED_TO
7f30: 5f 43 52 45 41 54 45 5f 54 48 52 45 41 44 53 2c  _CREATE_THREADS,
7f40: 0a 20 2a 20 61 6e 64 20 43 4b 52 5f 43 41 4e 54  . * and CKR_CANT
7f50: 5f 4c 4f 43 4b 20 61 72 65 20 6e 65 77 20 66 6f  _LOCK are new fo
7f60: 72 20 76 32 2e 30 31 20 2a 2f 0a 23 64 65 66 69  r v2.01 */.#defi
7f70: 6e 65 20 43 4b 52 5f 41 52 47 55 4d 45 4e 54 53  ne CKR_ARGUMENTS
7f80: 5f 42 41 44 20 20 20 20 20 20 20 20 20 20 20 20  _BAD            
7f90: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
7fa0: 30 30 37 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f  007.#define CKR_
7fb0: 4e 4f 5f 45 56 45 4e 54 20 20 20 20 20 20 20 20  NO_EVENT        
7fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7fd0: 20 20 30 78 30 30 30 30 30 30 30 38 0a 23 64 65    0x00000008.#de
7fe0: 66 69 6e 65 20 43 4b 52 5f 4e 45 45 44 5f 54 4f  fine CKR_NEED_TO
7ff0: 5f 43 52 45 41 54 45 5f 54 48 52 45 41 44 53 20  _CREATE_THREADS 
8000: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
8010: 30 30 30 30 39 0a 23 64 65 66 69 6e 65 20 43 4b  00009.#define CK
8020: 52 5f 43 41 4e 54 5f 4c 4f 43 4b 20 20 20 20 20  R_CANT_LOCK     
8030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8040: 20 20 20 20 30 78 30 30 30 30 30 30 30 41 0a 0a      0x0000000A..
8050: 23 64 65 66 69 6e 65 20 43 4b 52 5f 41 54 54 52  #define CKR_ATTR
8060: 49 42 55 54 45 5f 52 45 41 44 5f 4f 4e 4c 59 20  IBUTE_READ_ONLY 
8070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
8080: 30 30 30 30 30 30 31 30 0a 23 64 65 66 69 6e 65  00000010.#define
8090: 20 43 4b 52 5f 41 54 54 52 49 42 55 54 45 5f 53   CKR_ATTRIBUTE_S
80a0: 45 4e 53 49 54 49 56 45 20 20 20 20 20 20 20 20  ENSITIVE        
80b0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 31         0x0000001
80c0: 31 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 41 54  1.#define CKR_AT
80d0: 54 52 49 42 55 54 45 5f 54 59 50 45 5f 49 4e 56  TRIBUTE_TYPE_INV
80e0: 41 4c 49 44 20 20 20 20 20 20 20 20 20 20 20 20  ALID            
80f0: 30 78 30 30 30 30 30 30 31 32 0a 23 64 65 66 69  0x00000012.#defi
8100: 6e 65 20 43 4b 52 5f 41 54 54 52 49 42 55 54 45  ne CKR_ATTRIBUTE
8110: 5f 56 41 4c 55 45 5f 49 4e 56 41 4c 49 44 20 20  _VALUE_INVALID  
8120: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
8130: 30 31 33 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f  013.#define CKR_
8140: 44 41 54 41 5f 49 4e 56 41 4c 49 44 20 20 20 20  DATA_INVALID    
8150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8160: 20 20 30 78 30 30 30 30 30 30 32 30 0a 23 64 65    0x00000020.#de
8170: 66 69 6e 65 20 43 4b 52 5f 44 41 54 41 5f 4c 45  fine CKR_DATA_LE
8180: 4e 5f 52 41 4e 47 45 20 20 20 20 20 20 20 20 20  N_RANGE         
8190: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
81a0: 30 30 30 32 31 0a 23 64 65 66 69 6e 65 20 43 4b  00021.#define CK
81b0: 52 5f 44 45 56 49 43 45 5f 45 52 52 4f 52 20 20  R_DEVICE_ERROR  
81c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
81d0: 20 20 20 20 30 78 30 30 30 30 30 30 33 30 0a 23      0x00000030.#
81e0: 64 65 66 69 6e 65 20 43 4b 52 5f 44 45 56 49 43  define CKR_DEVIC
81f0: 45 5f 4d 45 4d 4f 52 59 20 20 20 20 20 20 20 20  E_MEMORY        
8200: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
8210: 30 30 30 30 30 33 31 0a 23 64 65 66 69 6e 65 20  0000031.#define 
8220: 43 4b 52 5f 44 45 56 49 43 45 5f 52 45 4d 4f 56  CKR_DEVICE_REMOV
8230: 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ED              
8240: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 33 32        0x00000032
8250: 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 45 4e 43  .#define CKR_ENC
8260: 52 59 50 54 45 44 5f 44 41 54 41 5f 49 4e 56 41  RYPTED_DATA_INVA
8270: 4c 49 44 20 20 20 20 20 20 20 20 20 20 20 20 30  LID            0
8280: 78 30 30 30 30 30 30 34 30 0a 23 64 65 66 69 6e  x00000040.#defin
8290: 65 20 43 4b 52 5f 45 4e 43 52 59 50 54 45 44 5f  e CKR_ENCRYPTED_
82a0: 44 41 54 41 5f 4c 45 4e 5f 52 41 4e 47 45 20 20  DATA_LEN_RANGE  
82b0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
82c0: 34 31 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 46  41.#define CKR_F
82d0: 55 4e 43 54 49 4f 4e 5f 43 41 4e 43 45 4c 45 44  UNCTION_CANCELED
82e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
82f0: 20 30 78 30 30 30 30 30 30 35 30 0a 23 64 65 66   0x00000050.#def
8300: 69 6e 65 20 43 4b 52 5f 46 55 4e 43 54 49 4f 4e  ine CKR_FUNCTION
8310: 5f 4e 4f 54 5f 50 41 52 41 4c 4c 45 4c 20 20 20  _NOT_PARALLEL   
8320: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
8330: 30 30 35 31 0a 0a 2f 2a 20 43 4b 52 5f 46 55 4e  0051../* CKR_FUN
8340: 43 54 49 4f 4e 5f 4e 4f 54 5f 53 55 50 50 4f 52  CTION_NOT_SUPPOR
8350: 54 45 44 20 69 73 20 6e 65 77 20 66 6f 72 20 76  TED is new for v
8360: 32 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  2.0 */.#define C
8370: 4b 52 5f 46 55 4e 43 54 49 4f 4e 5f 4e 4f 54 5f  KR_FUNCTION_NOT_
8380: 53 55 50 50 4f 52 54 45 44 20 20 20 20 20 20 20  SUPPORTED       
8390: 20 20 20 20 20 30 78 30 30 30 30 30 30 35 34 0a       0x00000054.
83a0: 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 4b 45 59  .#define CKR_KEY
83b0: 5f 48 41 4e 44 4c 45 5f 49 4e 56 41 4c 49 44 20  _HANDLE_INVALID 
83c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
83d0: 78 30 30 30 30 30 30 36 30 0a 0a 2f 2a 20 43 4b  x00000060../* CK
83e0: 52 5f 4b 45 59 5f 53 45 4e 53 49 54 49 56 45 20  R_KEY_SENSITIVE 
83f0: 77 61 73 20 72 65 6d 6f 76 65 64 20 66 6f 72 20  was removed for 
8400: 76 32 2e 30 20 2a 2f 0a 0a 23 64 65 66 69 6e 65  v2.0 */..#define
8410: 20 43 4b 52 5f 4b 45 59 5f 53 49 5a 45 5f 52 41   CKR_KEY_SIZE_RA
8420: 4e 47 45 20 20 20 20 20 20 20 20 20 20 20 20 20  NGE             
8430: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 36         0x0000006
8440: 32 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 4b 45  2.#define CKR_KE
8450: 59 5f 54 59 50 45 5f 49 4e 43 4f 4e 53 49 53 54  Y_TYPE_INCONSIST
8460: 45 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  ENT             
8470: 30 78 30 30 30 30 30 30 36 33 0a 0a 2f 2a 20 43  0x00000063../* C
8480: 4b 52 5f 4b 45 59 5f 4e 4f 54 5f 4e 45 45 44 45  KR_KEY_NOT_NEEDE
8490: 44 2c 20 43 4b 52 5f 4b 45 59 5f 43 48 41 4e 47  D, CKR_KEY_CHANG
84a0: 45 44 2c 20 43 4b 52 5f 4b 45 59 5f 4e 45 45 44  ED, CKR_KEY_NEED
84b0: 45 44 2c 0a 20 2a 20 43 4b 52 5f 4b 45 59 5f 49  ED,. * CKR_KEY_I
84c0: 4e 44 49 47 45 53 54 49 42 4c 45 2c 20 43 4b 52  NDIGESTIBLE, CKR
84d0: 5f 4b 45 59 5f 46 55 4e 43 54 49 4f 4e 5f 4e 4f  _KEY_FUNCTION_NO
84e0: 54 5f 50 45 52 4d 49 54 54 45 44 2c 0a 20 2a 20  T_PERMITTED,. * 
84f0: 43 4b 52 5f 4b 45 59 5f 4e 4f 54 5f 57 52 41 50  CKR_KEY_NOT_WRAP
8500: 50 41 42 4c 45 2c 20 61 6e 64 20 43 4b 52 5f 4b  PABLE, and CKR_K
8510: 45 59 5f 55 4e 45 58 54 52 41 43 54 41 42 4c 45  EY_UNEXTRACTABLE
8520: 20 61 72 65 20 6e 65 77 20 66 6f 72 0a 20 2a 20   are new for. * 
8530: 76 32 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20  v2.0 */.#define 
8540: 43 4b 52 5f 4b 45 59 5f 4e 4f 54 5f 4e 45 45 44  CKR_KEY_NOT_NEED
8550: 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ED              
8560: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 36 34        0x00000064
8570: 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 4b 45 59  .#define CKR_KEY
8580: 5f 43 48 41 4e 47 45 44 20 20 20 20 20 20 20 20  _CHANGED        
8590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
85a0: 78 30 30 30 30 30 30 36 35 0a 23 64 65 66 69 6e  x00000065.#defin
85b0: 65 20 43 4b 52 5f 4b 45 59 5f 4e 45 45 44 45 44  e CKR_KEY_NEEDED
85c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
85d0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
85e0: 36 36 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 4b  66.#define CKR_K
85f0: 45 59 5f 49 4e 44 49 47 45 53 54 49 42 4c 45 20  EY_INDIGESTIBLE 
8600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8610: 20 30 78 30 30 30 30 30 30 36 37 0a 23 64 65 66   0x00000067.#def
8620: 69 6e 65 20 43 4b 52 5f 4b 45 59 5f 46 55 4e 43  ine CKR_KEY_FUNC
8630: 54 49 4f 4e 5f 4e 4f 54 5f 50 45 52 4d 49 54 54  TION_NOT_PERMITT
8640: 45 44 20 20 20 20 20 20 20 20 30 78 30 30 30 30  ED        0x0000
8650: 30 30 36 38 0a 23 64 65 66 69 6e 65 20 43 4b 52  0068.#define CKR
8660: 5f 4b 45 59 5f 4e 4f 54 5f 57 52 41 50 50 41 42  _KEY_NOT_WRAPPAB
8670: 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20  LE              
8680: 20 20 20 30 78 30 30 30 30 30 30 36 39 0a 23 64     0x00000069.#d
8690: 65 66 69 6e 65 20 43 4b 52 5f 4b 45 59 5f 55 4e  efine CKR_KEY_UN
86a0: 45 58 54 52 41 43 54 41 42 4c 45 20 20 20 20 20  EXTRACTABLE     
86b0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
86c0: 30 30 30 30 36 41 0a 0a 23 64 65 66 69 6e 65 20  00006A..#define 
86d0: 43 4b 52 5f 4d 45 43 48 41 4e 49 53 4d 5f 49 4e  CKR_MECHANISM_IN
86e0: 56 41 4c 49 44 20 20 20 20 20 20 20 20 20 20 20  VALID           
86f0: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 37 30        0x00000070
8700: 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 4d 45 43  .#define CKR_MEC
8710: 48 41 4e 49 53 4d 5f 50 41 52 41 4d 5f 49 4e 56  HANISM_PARAM_INV
8720: 41 4c 49 44 20 20 20 20 20 20 20 20 20 20 20 30  ALID           0
8730: 78 30 30 30 30 30 30 37 31 0a 0a 2f 2a 20 43 4b  x00000071../* CK
8740: 52 5f 4f 42 4a 45 43 54 5f 43 4c 41 53 53 5f 49  R_OBJECT_CLASS_I
8750: 4e 43 4f 4e 53 49 53 54 45 4e 54 20 61 6e 64 20  NCONSISTENT and 
8760: 43 4b 52 5f 4f 42 4a 45 43 54 5f 43 4c 41 53 53  CKR_OBJECT_CLASS
8770: 5f 49 4e 56 41 4c 49 44 0a 20 2a 20 77 65 72 65  _INVALID. * were
8780: 20 72 65 6d 6f 76 65 64 20 66 6f 72 20 76 32 2e   removed for v2.
8790: 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 52  0 */.#define CKR
87a0: 5f 4f 42 4a 45 43 54 5f 48 41 4e 44 4c 45 5f 49  _OBJECT_HANDLE_I
87b0: 4e 56 41 4c 49 44 20 20 20 20 20 20 20 20 20 20  NVALID          
87c0: 20 20 20 30 78 30 30 30 30 30 30 38 32 0a 23 64     0x00000082.#d
87d0: 65 66 69 6e 65 20 43 4b 52 5f 4f 50 45 52 41 54  efine CKR_OPERAT
87e0: 49 4f 4e 5f 41 43 54 49 56 45 20 20 20 20 20 20  ION_ACTIVE      
87f0: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
8800: 30 30 30 30 39 30 0a 23 64 65 66 69 6e 65 20 43  000090.#define C
8810: 4b 52 5f 4f 50 45 52 41 54 49 4f 4e 5f 4e 4f 54  KR_OPERATION_NOT
8820: 5f 49 4e 49 54 49 41 4c 49 5a 45 44 20 20 20 20  _INITIALIZED    
8830: 20 20 20 20 20 30 78 30 30 30 30 30 30 39 31 0a       0x00000091.
8840: 23 64 65 66 69 6e 65 20 43 4b 52 5f 50 49 4e 5f  #define CKR_PIN_
8850: 49 4e 43 4f 52 52 45 43 54 20 20 20 20 20 20 20  INCORRECT       
8860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
8870: 30 30 30 30 30 30 41 30 0a 23 64 65 66 69 6e 65  000000A0.#define
8880: 20 43 4b 52 5f 50 49 4e 5f 49 4e 56 41 4c 49 44   CKR_PIN_INVALID
8890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
88a0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 41         0x000000A
88b0: 31 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 50 49  1.#define CKR_PI
88c0: 4e 5f 4c 45 4e 5f 52 41 4e 47 45 20 20 20 20 20  N_LEN_RANGE     
88d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
88e0: 30 78 30 30 30 30 30 30 41 32 0a 0a 2f 2a 20 43  0x000000A2../* C
88f0: 4b 52 5f 50 49 4e 5f 45 58 50 49 52 45 44 20 61  KR_PIN_EXPIRED a
8900: 6e 64 20 43 4b 52 5f 50 49 4e 5f 4c 4f 43 4b 45  nd CKR_PIN_LOCKE
8910: 44 20 61 72 65 20 6e 65 77 20 66 6f 72 20 76 32  D are new for v2
8920: 2e 30 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  .0 */.#define CK
8930: 52 5f 50 49 4e 5f 45 58 50 49 52 45 44 20 20 20  R_PIN_EXPIRED   
8940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8950: 20 20 20 20 30 78 30 30 30 30 30 30 41 33 0a 23      0x000000A3.#
8960: 64 65 66 69 6e 65 20 43 4b 52 5f 50 49 4e 5f 4c  define CKR_PIN_L
8970: 4f 43 4b 45 44 20 20 20 20 20 20 20 20 20 20 20  OCKED           
8980: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
8990: 30 30 30 30 30 41 34 0a 0a 23 64 65 66 69 6e 65  00000A4..#define
89a0: 20 43 4b 52 5f 53 45 53 53 49 4f 4e 5f 43 4c 4f   CKR_SESSION_CLO
89b0: 53 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20  SED             
89c0: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30 42         0x000000B
89d0: 30 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 53 45  0.#define CKR_SE
89e0: 53 53 49 4f 4e 5f 43 4f 55 4e 54 20 20 20 20 20  SSION_COUNT     
89f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8a00: 30 78 30 30 30 30 30 30 42 31 0a 23 64 65 66 69  0x000000B1.#defi
8a10: 6e 65 20 43 4b 52 5f 53 45 53 53 49 4f 4e 5f 48  ne CKR_SESSION_H
8a20: 41 4e 44 4c 45 5f 49 4e 56 41 4c 49 44 20 20 20  ANDLE_INVALID   
8a30: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
8a40: 30 42 33 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f  0B3.#define CKR_
8a50: 53 45 53 53 49 4f 4e 5f 50 41 52 41 4c 4c 45 4c  SESSION_PARALLEL
8a60: 5f 4e 4f 54 5f 53 55 50 50 4f 52 54 45 44 20 20  _NOT_SUPPORTED  
8a70: 20 20 30 78 30 30 30 30 30 30 42 34 0a 23 64 65    0x000000B4.#de
8a80: 66 69 6e 65 20 43 4b 52 5f 53 45 53 53 49 4f 4e  fine CKR_SESSION
8a90: 5f 52 45 41 44 5f 4f 4e 4c 59 20 20 20 20 20 20  _READ_ONLY      
8aa0: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
8ab0: 30 30 30 42 35 0a 23 64 65 66 69 6e 65 20 43 4b  000B5.#define CK
8ac0: 52 5f 53 45 53 53 49 4f 4e 5f 45 58 49 53 54 53  R_SESSION_EXISTS
8ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8ae0: 20 20 20 20 30 78 30 30 30 30 30 30 42 36 0a 0a      0x000000B6..
8af0: 2f 2a 20 43 4b 52 5f 53 45 53 53 49 4f 4e 5f 52  /* CKR_SESSION_R
8b00: 45 41 44 5f 4f 4e 4c 59 5f 45 58 49 53 54 53 20  EAD_ONLY_EXISTS 
8b10: 61 6e 64 0a 20 2a 20 43 4b 52 5f 53 45 53 53 49  and. * CKR_SESSI
8b20: 4f 4e 5f 52 45 41 44 5f 57 52 49 54 45 5f 53 4f  ON_READ_WRITE_SO
8b30: 5f 45 58 49 53 54 53 20 61 72 65 20 6e 65 77 20  _EXISTS are new 
8b40: 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 23 64 65 66  for v2.0 */.#def
8b50: 69 6e 65 20 43 4b 52 5f 53 45 53 53 49 4f 4e 5f  ine CKR_SESSION_
8b60: 52 45 41 44 5f 4f 4e 4c 59 5f 45 58 49 53 54 53  READ_ONLY_EXISTS
8b70: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
8b80: 30 30 42 37 0a 23 64 65 66 69 6e 65 20 43 4b 52  00B7.#define CKR
8b90: 5f 53 45 53 53 49 4f 4e 5f 52 45 41 44 5f 57 52  _SESSION_READ_WR
8ba0: 49 54 45 5f 53 4f 5f 45 58 49 53 54 53 20 20 20  ITE_SO_EXISTS   
8bb0: 20 20 20 30 78 30 30 30 30 30 30 42 38 0a 0a 23     0x000000B8..#
8bc0: 64 65 66 69 6e 65 20 43 4b 52 5f 53 49 47 4e 41  define CKR_SIGNA
8bd0: 54 55 52 45 5f 49 4e 56 41 4c 49 44 20 20 20 20  TURE_INVALID    
8be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30               0x0
8bf0: 30 30 30 30 30 43 30 0a 23 64 65 66 69 6e 65 20  00000C0.#define 
8c00: 43 4b 52 5f 53 49 47 4e 41 54 55 52 45 5f 4c 45  CKR_SIGNATURE_LE
8c10: 4e 5f 52 41 4e 47 45 20 20 20 20 20 20 20 20 20  N_RANGE         
8c20: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 43 31        0x000000C1
8c30: 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 54 45 4d  .#define CKR_TEM
8c40: 50 4c 41 54 45 5f 49 4e 43 4f 4d 50 4c 45 54 45  PLATE_INCOMPLETE
8c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
8c60: 78 30 30 30 30 30 30 44 30 0a 23 64 65 66 69 6e  x000000D0.#defin
8c70: 65 20 43 4b 52 5f 54 45 4d 50 4c 41 54 45 5f 49  e CKR_TEMPLATE_I
8c80: 4e 43 4f 4e 53 49 53 54 45 4e 54 20 20 20 20 20  NCONSISTENT     
8c90: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
8ca0: 44 31 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 54  D1.#define CKR_T
8cb0: 4f 4b 45 4e 5f 4e 4f 54 5f 50 52 45 53 45 4e 54  OKEN_NOT_PRESENT
8cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8cd0: 20 30 78 30 30 30 30 30 30 45 30 0a 23 64 65 66   0x000000E0.#def
8ce0: 69 6e 65 20 43 4b 52 5f 54 4f 4b 45 4e 5f 4e 4f  ine CKR_TOKEN_NO
8cf0: 54 5f 52 45 43 4f 47 4e 49 5a 45 44 20 20 20 20  T_RECOGNIZED    
8d00: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
8d10: 30 30 45 31 0a 23 64 65 66 69 6e 65 20 43 4b 52  00E1.#define CKR
8d20: 5f 54 4f 4b 45 4e 5f 57 52 49 54 45 5f 50 52 4f  _TOKEN_WRITE_PRO
8d30: 54 45 43 54 45 44 20 20 20 20 20 20 20 20 20 20  TECTED          
8d40: 20 20 20 30 78 30 30 30 30 30 30 45 32 0a 23 64     0x000000E2.#d
8d50: 65 66 69 6e 65 20 43 4b 52 5f 55 4e 57 52 41 50  efine CKR_UNWRAP
8d60: 50 49 4e 47 5f 4b 45 59 5f 48 41 4e 44 4c 45 5f  PING_KEY_HANDLE_
8d70: 49 4e 56 41 4c 49 44 20 20 20 20 20 30 78 30 30  INVALID     0x00
8d80: 30 30 30 30 46 30 0a 23 64 65 66 69 6e 65 20 43  0000F0.#define C
8d90: 4b 52 5f 55 4e 57 52 41 50 50 49 4e 47 5f 4b 45  KR_UNWRAPPING_KE
8da0: 59 5f 53 49 5a 45 5f 52 41 4e 47 45 20 20 20 20  Y_SIZE_RANGE    
8db0: 20 20 20 20 20 30 78 30 30 30 30 30 30 46 31 0a       0x000000F1.
8dc0: 23 64 65 66 69 6e 65 20 43 4b 52 5f 55 4e 57 52  #define CKR_UNWR
8dd0: 41 50 50 49 4e 47 5f 4b 45 59 5f 54 59 50 45 5f  APPING_KEY_TYPE_
8de0: 49 4e 43 4f 4e 53 49 53 54 45 4e 54 20 20 30 78  INCONSISTENT  0x
8df0: 30 30 30 30 30 30 46 32 0a 23 64 65 66 69 6e 65  000000F2.#define
8e00: 20 43 4b 52 5f 55 53 45 52 5f 41 4c 52 45 41 44   CKR_USER_ALREAD
8e10: 59 5f 4c 4f 47 47 45 44 5f 49 4e 20 20 20 20 20  Y_LOGGED_IN     
8e20: 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31 30         0x0000010
8e30: 30 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 55 53  0.#define CKR_US
8e40: 45 52 5f 4e 4f 54 5f 4c 4f 47 47 45 44 5f 49 4e  ER_NOT_LOGGED_IN
8e50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8e60: 30 78 30 30 30 30 30 31 30 31 0a 23 64 65 66 69  0x00000101.#defi
8e70: 6e 65 20 43 4b 52 5f 55 53 45 52 5f 50 49 4e 5f  ne CKR_USER_PIN_
8e80: 4e 4f 54 5f 49 4e 49 54 49 41 4c 49 5a 45 44 20  NOT_INITIALIZED 
8e90: 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30           0x00000
8ea0: 31 30 32 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f  102.#define CKR_
8eb0: 55 53 45 52 5f 54 59 50 45 5f 49 4e 56 41 4c 49  USER_TYPE_INVALI
8ec0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D               
8ed0: 20 20 30 78 30 30 30 30 30 31 30 33 0a 0a 2f 2a    0x00000103../*
8ee0: 20 43 4b 52 5f 55 53 45 52 5f 41 4e 4f 54 48 45   CKR_USER_ANOTHE
8ef0: 52 5f 41 4c 52 45 41 44 59 5f 4c 4f 47 47 45 44  R_ALREADY_LOGGED
8f00: 5f 49 4e 20 61 6e 64 20 43 4b 52 5f 55 53 45 52  _IN and CKR_USER
8f10: 5f 54 4f 4f 5f 4d 41 4e 59 5f 54 59 50 45 53 0a  _TOO_MANY_TYPES.
8f20: 20 2a 20 61 72 65 20 6e 65 77 20 74 6f 20 76 32   * are new to v2
8f30: 2e 30 31 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43  .01 */.#define C
8f40: 4b 52 5f 55 53 45 52 5f 41 4e 4f 54 48 45 52 5f  KR_USER_ANOTHER_
8f50: 41 4c 52 45 41 44 59 5f 4c 4f 47 47 45 44 5f 49  ALREADY_LOGGED_I
8f60: 4e 20 20 20 20 30 78 30 30 30 30 30 31 30 34 0a  N    0x00000104.
8f70: 23 64 65 66 69 6e 65 20 43 4b 52 5f 55 53 45 52  #define CKR_USER
8f80: 5f 54 4f 4f 5f 4d 41 4e 59 5f 54 59 50 45 53 20  _TOO_MANY_TYPES 
8f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
8fa0: 30 30 30 30 30 31 30 35 0a 0a 23 64 65 66 69 6e  00000105..#defin
8fb0: 65 20 43 4b 52 5f 57 52 41 50 50 45 44 5f 4b 45  e CKR_WRAPPED_KE
8fc0: 59 5f 49 4e 56 41 4c 49 44 20 20 20 20 20 20 20  Y_INVALID       
8fd0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
8fe0: 31 30 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 57  10.#define CKR_W
8ff0: 52 41 50 50 45 44 5f 4b 45 59 5f 4c 45 4e 5f 52  RAPPED_KEY_LEN_R
9000: 41 4e 47 45 20 20 20 20 20 20 20 20 20 20 20 20  ANGE            
9010: 20 30 78 30 30 30 30 30 31 31 32 0a 23 64 65 66   0x00000112.#def
9020: 69 6e 65 20 43 4b 52 5f 57 52 41 50 50 49 4e 47  ine CKR_WRAPPING
9030: 5f 4b 45 59 5f 48 41 4e 44 4c 45 5f 49 4e 56 41  _KEY_HANDLE_INVA
9040: 4c 49 44 20 20 20 20 20 20 20 30 78 30 30 30 30  LID       0x0000
9050: 30 31 31 33 0a 23 64 65 66 69 6e 65 20 43 4b 52  0113.#define CKR
9060: 5f 57 52 41 50 50 49 4e 47 5f 4b 45 59 5f 53 49  _WRAPPING_KEY_SI
9070: 5a 45 5f 52 41 4e 47 45 20 20 20 20 20 20 20 20  ZE_RANGE        
9080: 20 20 20 30 78 30 30 30 30 30 31 31 34 0a 23 64     0x00000114.#d
9090: 65 66 69 6e 65 20 43 4b 52 5f 57 52 41 50 50 49  efine CKR_WRAPPI
90a0: 4e 47 5f 4b 45 59 5f 54 59 50 45 5f 49 4e 43 4f  NG_KEY_TYPE_INCO
90b0: 4e 53 49 53 54 45 4e 54 20 20 20 20 30 78 30 30  NSISTENT    0x00
90c0: 30 30 30 31 31 35 0a 23 64 65 66 69 6e 65 20 43  000115.#define C
90d0: 4b 52 5f 52 41 4e 44 4f 4d 5f 53 45 45 44 5f 4e  KR_RANDOM_SEED_N
90e0: 4f 54 5f 53 55 50 50 4f 52 54 45 44 20 20 20 20  OT_SUPPORTED    
90f0: 20 20 20 20 20 30 78 30 30 30 30 30 31 32 30 0a       0x00000120.
9100: 0a 2f 2a 20 54 68 65 73 65 20 61 72 65 20 6e 65  ./* These are ne
9110: 77 20 74 6f 20 76 32 2e 30 20 2a 2f 0a 23 64 65  w to v2.0 */.#de
9120: 66 69 6e 65 20 43 4b 52 5f 52 41 4e 44 4f 4d 5f  fine CKR_RANDOM_
9130: 4e 4f 5f 52 4e 47 20 20 20 20 20 20 20 20 20 20  NO_RNG          
9140: 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30             0x000
9150: 30 30 31 32 31 0a 0a 2f 2a 20 54 68 65 73 65 20  00121../* These 
9160: 61 72 65 20 6e 65 77 20 74 6f 20 76 32 2e 31 31  are new to v2.11
9170: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f   */.#define CKR_
9180: 44 4f 4d 41 49 4e 5f 50 41 52 41 4d 53 5f 49 4e  DOMAIN_PARAMS_IN
9190: 56 41 4c 49 44 20 20 20 20 20 20 20 20 20 20 20  VALID           
91a0: 20 20 30 78 30 30 30 30 30 31 33 30 0a 0a 2f 2a    0x00000130../*
91b0: 20 54 68 65 73 65 20 61 72 65 20 6e 65 77 20 74   These are new t
91c0: 6f 20 76 32 2e 30 20 2a 2f 0a 23 64 65 66 69 6e  o v2.0 */.#defin
91d0: 65 20 43 4b 52 5f 42 55 46 46 45 52 5f 54 4f 4f  e CKR_BUFFER_TOO
91e0: 5f 53 4d 41 4c 4c 20 20 20 20 20 20 20 20 20 20  _SMALL          
91f0: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 31          0x000001
9200: 35 30 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 53  50.#define CKR_S
9210: 41 56 45 44 5f 53 54 41 54 45 5f 49 4e 56 41 4c  AVED_STATE_INVAL
9220: 49 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ID              
9230: 20 30 78 30 30 30 30 30 31 36 30 0a 23 64 65 66   0x00000160.#def
9240: 69 6e 65 20 43 4b 52 5f 49 4e 46 4f 52 4d 41 54  ine CKR_INFORMAT
9250: 49 4f 4e 5f 53 45 4e 53 49 54 49 56 45 20 20 20  ION_SENSITIVE   
9260: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
9270: 30 31 37 30 0a 23 64 65 66 69 6e 65 20 43 4b 52  0170.#define CKR
9280: 5f 53 54 41 54 45 5f 55 4e 53 41 56 45 41 42 4c  _STATE_UNSAVEABL
9290: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  E               
92a0: 20 20 20 30 78 30 30 30 30 30 31 38 30 0a 0a 2f     0x00000180../
92b0: 2a 20 54 68 65 73 65 20 61 72 65 20 6e 65 77 20  * These are new 
92c0: 74 6f 20 76 32 2e 30 31 20 2a 2f 0a 23 64 65 66  to v2.01 */.#def
92d0: 69 6e 65 20 43 4b 52 5f 43 52 59 50 54 4f 4b 49  ine CKR_CRYPTOKI
92e0: 5f 4e 4f 54 5f 49 4e 49 54 49 41 4c 49 5a 45 44  _NOT_INITIALIZED
92f0: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 30            0x0000
9300: 30 31 39 30 0a 23 64 65 66 69 6e 65 20 43 4b 52  0190.#define CKR
9310: 5f 43 52 59 50 54 4f 4b 49 5f 41 4c 52 45 41 44  _CRYPTOKI_ALREAD
9320: 59 5f 49 4e 49 54 49 41 4c 49 5a 45 44 20 20 20  Y_INITIALIZED   
9330: 20 20 20 30 78 30 30 30 30 30 31 39 31 0a 23 64     0x00000191.#d
9340: 65 66 69 6e 65 20 43 4b 52 5f 4d 55 54 45 58 5f  efine CKR_MUTEX_
9350: 42 41 44 20 20 20 20 20 20 20 20 20 20 20 20 20  BAD             
9360: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 30 30              0x00
9370: 30 30 30 31 41 30 0a 23 64 65 66 69 6e 65 20 43  0001A0.#define C
9380: 4b 52 5f 4d 55 54 45 58 5f 4e 4f 54 5f 4c 4f 43  KR_MUTEX_NOT_LOC
9390: 4b 45 44 20 20 20 20 20 20 20 20 20 20 20 20 20  KED             
93a0: 20 20 20 20 20 30 78 30 30 30 30 30 31 41 31 0a       0x000001A1.
93b0: 0a 23 64 65 66 69 6e 65 20 43 4b 52 5f 56 45 4e  .#define CKR_VEN
93c0: 44 4f 52 5f 44 45 46 49 4e 45 44 20 20 20 20 20  DOR_DEFINED     
93d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
93e0: 78 38 30 30 30 30 30 30 30 0a 0a 0a 2f 2a 20 43  x80000000.../* C
93f0: 4b 5f 4e 4f 54 49 46 59 20 69 73 20 61 6e 20 61  K_NOTIFY is an a
9400: 70 70 6c 69 63 61 74 69 6f 6e 20 63 61 6c 6c 62  pplication callb
9410: 61 63 6b 20 74 68 61 74 20 70 72 6f 63 65 73 73  ack that process
9420: 65 73 20 65 76 65 6e 74 73 20 2a 2f 0a 74 79 70  es events */.typ
9430: 65 64 65 66 20 43 4b 5f 43 41 4c 4c 42 41 43 4b  edef CK_CALLBACK
9440: 5f 46 55 4e 43 54 49 4f 4e 28 43 4b 5f 52 56 2c  _FUNCTION(CK_RV,
9450: 20 43 4b 5f 4e 4f 54 49 46 59 29 28 0a 20 20 43   CK_NOTIFY)(.  C
9460: 4b 5f 53 45 53 53 49 4f 4e 5f 48 41 4e 44 4c 45  K_SESSION_HANDLE
9470: 20 68 53 65 73 73 69 6f 6e 2c 20 20 20 20 20 2f   hSession,     /
9480: 2a 20 74 68 65 20 73 65 73 73 69 6f 6e 27 73 20  * the session's 
9490: 68 61 6e 64 6c 65 20 2a 2f 0a 20 20 43 4b 5f 4e  handle */.  CK_N
94a0: 4f 54 49 46 49 43 41 54 49 4f 4e 20 20 20 65 76  OTIFICATION   ev
94b0: 65 6e 74 2c 0a 20 20 43 4b 5f 56 4f 49 44 5f 50  ent,.  CK_VOID_P
94c0: 54 52 20 20 20 20 20 20 20 70 41 70 70 6c 69 63  TR       pApplic
94d0: 61 74 69 6f 6e 20 20 2f 2a 20 70 61 73 73 65 64  ation  /* passed
94e0: 20 74 6f 20 43 5f 4f 70 65 6e 53 65 73 73 69 6f   to C_OpenSessio
94f0: 6e 20 2a 2f 0a 29 3b 0a 0a 0a 2f 2a 20 43 4b 5f  n */.);.../* CK_
9500: 46 55 4e 43 54 49 4f 4e 5f 4c 49 53 54 20 69 73  FUNCTION_LIST is
9510: 20 61 20 73 74 72 75 63 74 75 72 65 20 68 6f 6c   a structure hol
9520: 64 69 6e 67 20 61 20 43 72 79 70 74 6f 6b 69 20  ding a Cryptoki 
9530: 73 70 65 63 0a 20 2a 20 76 65 72 73 69 6f 6e 20  spec. * version 
9540: 61 6e 64 20 70 6f 69 6e 74 65 72 73 20 6f 66 20  and pointers of 
9550: 61 70 70 72 6f 70 72 69 61 74 65 20 74 79 70 65  appropriate type
9560: 73 20 74 6f 20 61 6c 6c 20 74 68 65 0a 20 2a 20  s to all the. * 
9570: 43 72 79 70 74 6f 6b 69 20 66 75 6e 63 74 69 6f  Cryptoki functio
9580: 6e 73 20 2a 2f 0a 2f 2a 20 43 4b 5f 46 55 4e 43  ns */./* CK_FUNC
9590: 54 49 4f 4e 5f 4c 49 53 54 20 69 73 20 6e 65 77  TION_LIST is new
95a0: 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 74 79 70   for v2.0 */.typ
95b0: 65 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f 46  edef struct CK_F
95c0: 55 4e 43 54 49 4f 4e 5f 4c 49 53 54 20 43 4b 5f  UNCTION_LIST CK_
95d0: 46 55 4e 43 54 49 4f 4e 5f 4c 49 53 54 3b 0a 0a  FUNCTION_LIST;..
95e0: 74 79 70 65 64 65 66 20 43 4b 5f 46 55 4e 43 54  typedef CK_FUNCT
95f0: 49 4f 4e 5f 4c 49 53 54 20 43 4b 5f 50 54 52 20  ION_LIST CK_PTR 
9600: 43 4b 5f 46 55 4e 43 54 49 4f 4e 5f 4c 49 53 54  CK_FUNCTION_LIST
9610: 5f 50 54 52 3b 0a 0a 74 79 70 65 64 65 66 20 43  _PTR;..typedef C
9620: 4b 5f 46 55 4e 43 54 49 4f 4e 5f 4c 49 53 54 5f  K_FUNCTION_LIST_
9630: 50 54 52 20 43 4b 5f 50 54 52 20 43 4b 5f 46 55  PTR CK_PTR CK_FU
9640: 4e 43 54 49 4f 4e 5f 4c 49 53 54 5f 50 54 52 5f  NCTION_LIST_PTR_
9650: 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f 43 52 45  PTR;.../* CK_CRE
9660: 41 54 45 4d 55 54 45 58 20 69 73 20 61 6e 20 61  ATEMUTEX is an a
9670: 70 70 6c 69 63 61 74 69 6f 6e 20 63 61 6c 6c 62  pplication callb
9680: 61 63 6b 20 66 6f 72 20 63 72 65 61 74 69 6e 67  ack for creating
9690: 20 61 0a 20 2a 20 6d 75 74 65 78 20 6f 62 6a 65   a. * mutex obje
96a0: 63 74 20 2a 2f 0a 74 79 70 65 64 65 66 20 43 4b  ct */.typedef CK
96b0: 5f 43 41 4c 4c 42 41 43 4b 5f 46 55 4e 43 54 49  _CALLBACK_FUNCTI
96c0: 4f 4e 28 43 4b 5f 52 56 2c 20 43 4b 5f 43 52 45  ON(CK_RV, CK_CRE
96d0: 41 54 45 4d 55 54 45 58 29 28 0a 20 20 43 4b 5f  ATEMUTEX)(.  CK_
96e0: 56 4f 49 44 5f 50 54 52 5f 50 54 52 20 70 70 4d  VOID_PTR_PTR ppM
96f0: 75 74 65 78 20 20 2f 2a 20 6c 6f 63 61 74 69 6f  utex  /* locatio
9700: 6e 20 74 6f 20 72 65 63 65 69 76 65 20 70 74 72  n to receive ptr
9710: 20 74 6f 20 6d 75 74 65 78 20 2a 2f 0a 29 3b 0a   to mutex */.);.
9720: 0a 0a 2f 2a 20 43 4b 5f 44 45 53 54 52 4f 59 4d  ../* CK_DESTROYM
9730: 55 54 45 58 20 69 73 20 61 6e 20 61 70 70 6c 69  UTEX is an appli
9740: 63 61 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 20  cation callback 
9750: 66 6f 72 20 64 65 73 74 72 6f 79 69 6e 67 20 61  for destroying a
9760: 0a 20 2a 20 6d 75 74 65 78 20 6f 62 6a 65 63 74  . * mutex object
9770: 20 2a 2f 0a 74 79 70 65 64 65 66 20 43 4b 5f 43   */.typedef CK_C
9780: 41 4c 4c 42 41 43 4b 5f 46 55 4e 43 54 49 4f 4e  ALLBACK_FUNCTION
9790: 28 43 4b 5f 52 56 2c 20 43 4b 5f 44 45 53 54 52  (CK_RV, CK_DESTR
97a0: 4f 59 4d 55 54 45 58 29 28 0a 20 20 43 4b 5f 56  OYMUTEX)(.  CK_V
97b0: 4f 49 44 5f 50 54 52 20 70 4d 75 74 65 78 20 20  OID_PTR pMutex  
97c0: 2f 2a 20 70 6f 69 6e 74 65 72 20 74 6f 20 6d 75  /* pointer to mu
97d0: 74 65 78 20 2a 2f 0a 29 3b 0a 0a 0a 2f 2a 20 43  tex */.);.../* C
97e0: 4b 5f 4c 4f 43 4b 4d 55 54 45 58 20 69 73 20 61  K_LOCKMUTEX is a
97f0: 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 63 61  n application ca
9800: 6c 6c 62 61 63 6b 20 66 6f 72 20 6c 6f 63 6b 69  llback for locki
9810: 6e 67 20 61 20 6d 75 74 65 78 20 2a 2f 0a 74 79  ng a mutex */.ty
9820: 70 65 64 65 66 20 43 4b 5f 43 41 4c 4c 42 41 43  pedef CK_CALLBAC
9830: 4b 5f 46 55 4e 43 54 49 4f 4e 28 43 4b 5f 52 56  K_FUNCTION(CK_RV
9840: 2c 20 43 4b 5f 4c 4f 43 4b 4d 55 54 45 58 29 28  , CK_LOCKMUTEX)(
9850: 0a 20 20 43 4b 5f 56 4f 49 44 5f 50 54 52 20 70  .  CK_VOID_PTR p
9860: 4d 75 74 65 78 20 20 2f 2a 20 70 6f 69 6e 74 65  Mutex  /* pointe
9870: 72 20 74 6f 20 6d 75 74 65 78 20 2a 2f 0a 29 3b  r to mutex */.);
9880: 0a 0a 0a 2f 2a 20 43 4b 5f 55 4e 4c 4f 43 4b 4d  .../* CK_UNLOCKM
9890: 55 54 45 58 20 69 73 20 61 6e 20 61 70 70 6c 69  UTEX is an appli
98a0: 63 61 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 20  cation callback 
98b0: 66 6f 72 20 75 6e 6c 6f 63 6b 69 6e 67 20 61 0a  for unlocking a.
98c0: 20 2a 20 6d 75 74 65 78 20 2a 2f 0a 74 79 70 65   * mutex */.type
98d0: 64 65 66 20 43 4b 5f 43 41 4c 4c 42 41 43 4b 5f  def CK_CALLBACK_
98e0: 46 55 4e 43 54 49 4f 4e 28 43 4b 5f 52 56 2c 20  FUNCTION(CK_RV, 
98f0: 43 4b 5f 55 4e 4c 4f 43 4b 4d 55 54 45 58 29 28  CK_UNLOCKMUTEX)(
9900: 0a 20 20 43 4b 5f 56 4f 49 44 5f 50 54 52 20 70  .  CK_VOID_PTR p
9910: 4d 75 74 65 78 20 20 2f 2a 20 70 6f 69 6e 74 65  Mutex  /* pointe
9920: 72 20 74 6f 20 6d 75 74 65 78 20 2a 2f 0a 29 3b  r to mutex */.);
9930: 0a 0a 0a 2f 2a 20 43 4b 5f 43 5f 49 4e 49 54 49  .../* CK_C_INITI
9940: 41 4c 49 5a 45 5f 41 52 47 53 20 70 72 6f 76 69  ALIZE_ARGS provi
9950: 64 65 73 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c  des the optional
9960: 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 0a 20 2a   arguments to. *
9970: 20 43 5f 49 6e 69 74 69 61 6c 69 7a 65 20 2a 2f   C_Initialize */
9980: 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20  .typedef struct 
9990: 43 4b 5f 43 5f 49 4e 49 54 49 41 4c 49 5a 45 5f  CK_C_INITIALIZE_
99a0: 41 52 47 53 20 7b 0a 20 20 43 4b 5f 43 52 45 41  ARGS {.  CK_CREA
99b0: 54 45 4d 55 54 45 58 20 43 72 65 61 74 65 4d 75  TEMUTEX CreateMu
99c0: 74 65 78 3b 0a 20 20 43 4b 5f 44 45 53 54 52 4f  tex;.  CK_DESTRO
99d0: 59 4d 55 54 45 58 20 44 65 73 74 72 6f 79 4d 75  YMUTEX DestroyMu
99e0: 74 65 78 3b 0a 20 20 43 4b 5f 4c 4f 43 4b 4d 55  tex;.  CK_LOCKMU
99f0: 54 45 58 20 4c 6f 63 6b 4d 75 74 65 78 3b 0a 20  TEX LockMutex;. 
9a00: 20 43 4b 5f 55 4e 4c 4f 43 4b 4d 55 54 45 58 20   CK_UNLOCKMUTEX 
9a10: 55 6e 6c 6f 63 6b 4d 75 74 65 78 3b 0a 20 20 43  UnlockMutex;.  C
9a20: 4b 5f 46 4c 41 47 53 20 66 6c 61 67 73 3b 0a 20  K_FLAGS flags;. 
9a30: 20 43 4b 5f 56 4f 49 44 5f 50 54 52 20 70 52 65   CK_VOID_PTR pRe
9a40: 73 65 72 76 65 64 3b 0a 7d 20 43 4b 5f 43 5f 49  served;.} CK_C_I
9a50: 4e 49 54 49 41 4c 49 5a 45 5f 41 52 47 53 3b 0a  NITIALIZE_ARGS;.
9a60: 0a 2f 2a 20 66 6c 61 67 73 3a 20 62 69 74 20 66  ./* flags: bit f
9a70: 6c 61 67 73 20 74 68 61 74 20 70 72 6f 76 69 64  lags that provid
9a80: 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f  e capabilities o
9a90: 66 20 74 68 65 20 73 6c 6f 74 0a 20 2a 20 20 20  f the slot. *   
9aa0: 20 20 20 42 69 74 20 46 6c 61 67 20 20 20 20 20     Bit Flag     
9ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9ac0: 20 20 20 20 20 20 4d 61 73 6b 20 20 20 20 20 20        Mask      
9ad0: 20 4d 65 61 6e 69 6e 67 0a 20 2a 2f 0a 23 64 65   Meaning. */.#de
9ae0: 66 69 6e 65 20 43 4b 46 5f 4c 49 42 52 41 52 59  fine CKF_LIBRARY
9af0: 5f 43 41 4e 54 5f 43 52 45 41 54 45 5f 4f 53 5f  _CANT_CREATE_OS_
9b00: 54 48 52 45 41 44 53 20 30 78 30 30 30 30 30 30  THREADS 0x000000
9b10: 30 31 0a 23 64 65 66 69 6e 65 20 43 4b 46 5f 4f  01.#define CKF_O
9b20: 53 5f 4c 4f 43 4b 49 4e 47 5f 4f 4b 20 20 20 20  S_LOCKING_OK    
9b30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
9b40: 30 30 30 30 30 30 30 32 0a 0a 74 79 70 65 64 65  00000002..typede
9b50: 66 20 43 4b 5f 43 5f 49 4e 49 54 49 41 4c 49 5a  f CK_C_INITIALIZ
9b60: 45 5f 41 52 47 53 20 43 4b 5f 50 54 52 20 43 4b  E_ARGS CK_PTR CK
9b70: 5f 43 5f 49 4e 49 54 49 41 4c 49 5a 45 5f 41 52  _C_INITIALIZE_AR
9b80: 47 53 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 61 64 64  GS_PTR;.../* add
9b90: 69 74 69 6f 6e 61 6c 20 66 6c 61 67 73 20 66 6f  itional flags fo
9ba0: 72 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20  r parameters to 
9bb0: 66 75 6e 63 74 69 6f 6e 73 20 2a 2f 0a 0a 2f 2a  functions */../*
9bc0: 20 43 4b 46 5f 44 4f 4e 54 5f 42 4c 4f 43 4b 20   CKF_DONT_BLOCK 
9bd0: 69 73 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74  is for the funct
9be0: 69 6f 6e 20 43 5f 57 61 69 74 46 6f 72 53 6c 6f  ion C_WaitForSlo
9bf0: 74 45 76 65 6e 74 20 2a 2f 0a 23 64 65 66 69 6e  tEvent */.#defin
9c00: 65 20 43 4b 46 5f 44 4f 4e 54 5f 42 4c 4f 43 4b  e CKF_DONT_BLOCK
9c10: 20 20 20 20 20 31 0a 0a 2f 2a 20 43 4b 5f 52 53       1../* CK_RS
9c20: 41 5f 50 4b 43 53 5f 4f 41 45 50 5f 4d 47 46 5f  A_PKCS_OAEP_MGF_
9c30: 54 59 50 45 20 69 73 20 6e 65 77 20 66 6f 72 20  TYPE is new for 
9c40: 76 32 2e 31 30 2e 20 0a 20 2a 20 43 4b 5f 52 53  v2.10. . * CK_RS
9c50: 41 5f 50 4b 43 53 5f 4f 41 45 50 5f 4d 47 46 5f  A_PKCS_OAEP_MGF_
9c60: 54 59 50 45 20 20 69 73 20 75 73 65 64 20 74 6f  TYPE  is used to
9c70: 20 69 6e 64 69 63 61 74 65 20 74 68 65 20 4d 65   indicate the Me
9c80: 73 73 61 67 65 20 0a 20 2a 20 47 65 6e 65 72 61  ssage . * Genera
9c90: 74 69 6f 6e 20 46 75 6e 63 74 69 6f 6e 20 28 4d  tion Function (M
9ca0: 47 46 29 20 61 70 70 6c 69 65 64 20 74 6f 20 61  GF) applied to a
9cb0: 20 6d 65 73 73 61 67 65 20 62 6c 6f 63 6b 20 77   message block w
9cc0: 68 65 6e 20 0a 20 2a 20 66 6f 72 6d 61 74 74 69  hen . * formatti
9cd0: 6e 67 20 61 20 6d 65 73 73 61 67 65 20 62 6c 6f  ng a message blo
9ce0: 63 6b 20 66 6f 72 20 74 68 65 20 50 4b 43 53 20  ck for the PKCS 
9cf0: 23 31 20 4f 41 45 50 20 65 6e 63 72 79 70 74 69  #1 OAEP encrypti
9d00: 6f 6e 20 0a 20 2a 20 73 63 68 65 6d 65 2e 20 2a  on . * scheme. *
9d10: 2f 0a 74 79 70 65 64 65 66 20 43 4b 5f 55 4c 4f  /.typedef CK_ULO
9d20: 4e 47 20 43 4b 5f 52 53 41 5f 50 4b 43 53 5f 4d  NG CK_RSA_PKCS_M
9d30: 47 46 5f 54 59 50 45 3b 0a 0a 74 79 70 65 64 65  GF_TYPE;..typede
9d40: 66 20 43 4b 5f 52 53 41 5f 50 4b 43 53 5f 4d 47  f CK_RSA_PKCS_MG
9d50: 46 5f 54 59 50 45 20 43 4b 5f 50 54 52 20 43 4b  F_TYPE CK_PTR CK
9d60: 5f 52 53 41 5f 50 4b 43 53 5f 4d 47 46 5f 54 59  _RSA_PKCS_MGF_TY
9d70: 50 45 5f 50 54 52 3b 0a 0a 2f 2a 20 54 68 65 20  PE_PTR;../* The 
9d80: 66 6f 6c 6c 6f 77 69 6e 67 20 4d 47 46 73 20 61  following MGFs a
9d90: 72 65 20 64 65 66 69 6e 65 64 20 2a 2f 0a 23 64  re defined */.#d
9da0: 65 66 69 6e 65 20 43 4b 47 5f 4d 47 46 31 5f 53  efine CKG_MGF1_S
9db0: 48 41 31 20 20 20 20 20 20 20 20 20 30 78 30 30  HA1         0x00
9dc0: 30 30 30 30 30 31 0a 0a 2f 2a 20 43 4b 5f 52 53  000001../* CK_RS
9dd0: 41 5f 50 4b 43 53 5f 4f 41 45 50 5f 53 4f 55 52  A_PKCS_OAEP_SOUR
9de0: 43 45 5f 54 59 50 45 20 69 73 20 6e 65 77 20 66  CE_TYPE is new f
9df0: 6f 72 20 76 32 2e 31 30 2e 20 0a 20 2a 20 43 4b  or v2.10. . * CK
9e00: 5f 52 53 41 5f 50 4b 43 53 5f 4f 41 45 50 5f 53  _RSA_PKCS_OAEP_S
9e10: 4f 55 52 43 45 5f 54 59 50 45 20 20 69 73 20 75  OURCE_TYPE  is u
9e20: 73 65 64 20 74 6f 20 69 6e 64 69 63 61 74 65 20  sed to indicate 
9e30: 74 68 65 20 73 6f 75 72 63 65 0a 20 2a 20 6f 66  the source. * of
9e40: 20 74 68 65 20 65 6e 63 6f 64 69 6e 67 20 70 61   the encoding pa
9e50: 72 61 6d 65 74 65 72 20 77 68 65 6e 20 66 6f 72  rameter when for
9e60: 6d 61 74 74 69 6e 67 20 61 20 6d 65 73 73 61 67  matting a messag
9e70: 65 20 62 6c 6f 63 6b 20 0a 20 2a 20 66 6f 72 20  e block . * for 
9e80: 74 68 65 20 50 4b 43 53 20 23 31 20 4f 41 45 50  the PKCS #1 OAEP
9e90: 20 65 6e 63 72 79 70 74 69 6f 6e 20 73 63 68 65   encryption sche
9ea0: 6d 65 2e 20 2a 2f 0a 74 79 70 65 64 65 66 20 43  me. */.typedef C
9eb0: 4b 5f 55 4c 4f 4e 47 20 43 4b 5f 52 53 41 5f 50  K_ULONG CK_RSA_P
9ec0: 4b 43 53 5f 4f 41 45 50 5f 53 4f 55 52 43 45 5f  KCS_OAEP_SOURCE_
9ed0: 54 59 50 45 3b 0a 0a 74 79 70 65 64 65 66 20 43  TYPE;..typedef C
9ee0: 4b 5f 52 53 41 5f 50 4b 43 53 5f 4f 41 45 50 5f  K_RSA_PKCS_OAEP_
9ef0: 53 4f 55 52 43 45 5f 54 59 50 45 20 43 4b 5f 50  SOURCE_TYPE CK_P
9f00: 54 52 20 43 4b 5f 52 53 41 5f 50 4b 43 53 5f 4f  TR CK_RSA_PKCS_O
9f10: 41 45 50 5f 53 4f 55 52 43 45 5f 54 59 50 45 5f  AEP_SOURCE_TYPE_
9f20: 50 54 52 3b 0a 0a 2f 2a 20 54 68 65 20 66 6f 6c  PTR;../* The fol
9f30: 6c 6f 77 69 6e 67 20 65 6e 63 6f 64 69 6e 67 20  lowing encoding 
9f40: 70 61 72 61 6d 65 74 65 72 20 73 6f 75 72 63 65  parameter source
9f50: 73 20 61 72 65 20 64 65 66 69 6e 65 64 20 2a 2f  s are defined */
9f60: 0a 23 64 65 66 69 6e 65 20 43 4b 5a 5f 44 41 54  .#define CKZ_DAT
9f70: 41 5f 53 50 45 43 49 46 49 45 44 20 20 20 20 30  A_SPECIFIED    0
9f80: 78 30 30 30 30 30 30 30 31 0a 0a 2f 2a 20 43 4b  x00000001../* CK
9f90: 5f 52 53 41 5f 50 4b 43 53 5f 4f 41 45 50 5f 50  _RSA_PKCS_OAEP_P
9fa0: 41 52 41 4d 53 20 69 73 20 6e 65 77 20 66 6f 72  ARAMS is new for
9fb0: 20 76 32 2e 31 30 2e 0a 20 2a 20 43 4b 5f 52 53   v2.10.. * CK_RS
9fc0: 41 5f 50 4b 43 53 5f 4f 41 45 50 5f 50 41 52 41  A_PKCS_OAEP_PARA
9fd0: 4d 53 20 70 72 6f 76 69 64 65 73 20 74 68 65 20  MS provides the 
9fe0: 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 74 68  parameters to th
9ff0: 65 20 0a 20 2a 20 43 4b 4d 5f 52 53 41 5f 50 4b  e . * CKM_RSA_PK
a000: 43 53 5f 4f 41 45 50 20 6d 65 63 68 61 6e 69 73  CS_OAEP mechanis
a010: 6d 2e 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74  m. */.typedef st
a020: 72 75 63 74 20 43 4b 5f 52 53 41 5f 50 4b 43 53  ruct CK_RSA_PKCS
a030: 5f 4f 41 45 50 5f 50 41 52 41 4d 53 20 7b 0a 09  _OAEP_PARAMS {..
a040: 43 4b 5f 4d 45 43 48 41 4e 49 53 4d 5f 54 59 50  CK_MECHANISM_TYP
a050: 45 20 68 61 73 68 41 6c 67 3b 0a 09 43 4b 5f 52  E hashAlg;..CK_R
a060: 53 41 5f 50 4b 43 53 5f 4d 47 46 5f 54 59 50 45  SA_PKCS_MGF_TYPE
a070: 20 6d 67 66 3b 0a 09 43 4b 5f 52 53 41 5f 50 4b   mgf;..CK_RSA_PK
a080: 43 53 5f 4f 41 45 50 5f 53 4f 55 52 43 45 5f 54  CS_OAEP_SOURCE_T
a090: 59 50 45 20 73 6f 75 72 63 65 3b 0a 09 43 4b 5f  YPE source;..CK_
a0a0: 56 4f 49 44 5f 50 54 52 20 70 53 6f 75 72 63 65  VOID_PTR pSource
a0b0: 44 61 74 61 3b 0a 09 43 4b 5f 55 4c 4f 4e 47 20  Data;..CK_ULONG 
a0c0: 75 6c 53 6f 75 72 63 65 44 61 74 61 4c 65 6e 3b  ulSourceDataLen;
a0d0: 0a 7d 20 43 4b 5f 52 53 41 5f 50 4b 43 53 5f 4f  .} CK_RSA_PKCS_O
a0e0: 41 45 50 5f 50 41 52 41 4d 53 3b 0a 0a 74 79 70  AEP_PARAMS;..typ
a0f0: 65 64 65 66 20 43 4b 5f 52 53 41 5f 50 4b 43 53  edef CK_RSA_PKCS
a100: 5f 4f 41 45 50 5f 50 41 52 41 4d 53 20 43 4b 5f  _OAEP_PARAMS CK_
a110: 50 54 52 20 43 4b 5f 52 53 41 5f 50 4b 43 53 5f  PTR CK_RSA_PKCS_
a120: 4f 41 45 50 5f 50 41 52 41 4d 53 5f 50 54 52 3b  OAEP_PARAMS_PTR;
a130: 0a 0a 2f 2a 20 43 4b 5f 52 53 41 5f 50 4b 43 53  ../* CK_RSA_PKCS
a140: 5f 50 53 53 5f 50 41 52 41 4d 53 20 69 73 20 6e  _PSS_PARAMS is n
a150: 65 77 20 66 6f 72 20 76 32 2e 31 31 2e 0a 20 2a  ew for v2.11.. *
a160: 20 43 4b 5f 52 53 41 5f 50 4b 43 53 5f 50 53 53   CK_RSA_PKCS_PSS
a170: 5f 50 41 52 41 4d 53 20 70 72 6f 76 69 64 65 73  _PARAMS provides
a180: 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20   the parameters 
a190: 74 6f 20 74 68 65 0a 20 2a 20 43 4b 4d 5f 52 53  to the. * CKM_RS
a1a0: 41 5f 50 4b 43 53 5f 50 53 53 20 6d 65 63 68 61  A_PKCS_PSS mecha
a1b0: 6e 69 73 6d 28 73 29 2e 20 2a 2f 0a 74 79 70 65  nism(s). */.type
a1c0: 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f 52 53  def struct CK_RS
a1d0: 41 5f 50 4b 43 53 5f 50 53 53 5f 50 41 52 41 4d  A_PKCS_PSS_PARAM
a1e0: 53 20 7b 0a 09 43 4b 5f 4d 45 43 48 41 4e 49 53  S {..CK_MECHANIS
a1f0: 4d 5f 54 59 50 45 20 20 20 20 68 61 73 68 41 6c  M_TYPE    hashAl
a200: 67 3b 0a 09 43 4b 5f 52 53 41 5f 50 4b 43 53 5f  g;..CK_RSA_PKCS_
a210: 4d 47 46 5f 54 59 50 45 20 6d 67 66 3b 0a 09 43  MGF_TYPE mgf;..C
a220: 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20  K_ULONG         
a230: 20 20 20 20 73 4c 65 6e 3b 0a 7d 20 43 4b 5f 52      sLen;.} CK_R
a240: 53 41 5f 50 4b 43 53 5f 50 53 53 5f 50 41 52 41  SA_PKCS_PSS_PARA
a250: 4d 53 3b 0a 0a 2f 2a 20 43 4b 5f 4b 45 41 5f 44  MS;../* CK_KEA_D
a260: 45 52 49 56 45 5f 50 41 52 41 4d 53 20 70 72 6f  ERIVE_PARAMS pro
a270: 76 69 64 65 73 20 74 68 65 20 70 61 72 61 6d 65  vides the parame
a280: 74 65 72 73 20 74 6f 20 74 68 65 0a 20 2a 20 43  ters to the. * C
a290: 4b 4d 5f 4b 45 41 5f 44 45 52 49 56 45 20 6d 65  KM_KEA_DERIVE me
a2a0: 63 68 61 6e 69 73 6d 20 2a 2f 0a 2f 2a 20 43 4b  chanism */./* CK
a2b0: 5f 4b 45 41 5f 44 45 52 49 56 45 5f 50 41 52 41  _KEA_DERIVE_PARA
a2c0: 4d 53 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32  MS is new for v2
a2d0: 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74  .0 */.typedef st
a2e0: 72 75 63 74 20 43 4b 5f 4b 45 41 5f 44 45 52 49  ruct CK_KEA_DERI
a2f0: 56 45 5f 50 41 52 41 4d 53 20 7b 0a 20 20 43 4b  VE_PARAMS {.  CK
a300: 5f 42 42 4f 4f 4c 20 20 20 20 20 20 69 73 53 65  _BBOOL      isSe
a310: 6e 64 65 72 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47  nder;.  CK_ULONG
a320: 20 20 20 20 20 20 75 6c 52 61 6e 64 6f 6d 4c 65        ulRandomLe
a330: 6e 3b 0a 20 20 43 4b 5f 42 59 54 45 5f 50 54 52  n;.  CK_BYTE_PTR
a340: 20 20 20 70 52 61 6e 64 6f 6d 41 3b 0a 20 20 43     pRandomA;.  C
a350: 4b 5f 42 59 54 45 5f 50 54 52 20 20 20 70 52 61  K_BYTE_PTR   pRa
a360: 6e 64 6f 6d 42 3b 0a 20 20 43 4b 5f 55 4c 4f 4e  ndomB;.  CK_ULON
a370: 47 20 20 20 20 20 20 75 6c 50 75 62 6c 69 63 44  G      ulPublicD
a380: 61 74 61 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59 54  ataLen;.  CK_BYT
a390: 45 5f 50 54 52 20 20 20 70 50 75 62 6c 69 63 44  E_PTR   pPublicD
a3a0: 61 74 61 3b 0a 7d 20 43 4b 5f 4b 45 41 5f 44 45  ata;.} CK_KEA_DE
a3b0: 52 49 56 45 5f 50 41 52 41 4d 53 3b 0a 0a 74 79  RIVE_PARAMS;..ty
a3c0: 70 65 64 65 66 20 43 4b 5f 4b 45 41 5f 44 45 52  pedef CK_KEA_DER
a3d0: 49 56 45 5f 50 41 52 41 4d 53 20 43 4b 5f 50 54  IVE_PARAMS CK_PT
a3e0: 52 20 43 4b 5f 4b 45 41 5f 44 45 52 49 56 45 5f  R CK_KEA_DERIVE_
a3f0: 50 41 52 41 4d 53 5f 50 54 52 3b 0a 0a 0a 2f 2a  PARAMS_PTR;.../*
a400: 20 43 4b 5f 52 43 32 5f 50 41 52 41 4d 53 20 70   CK_RC2_PARAMS p
a410: 72 6f 76 69 64 65 73 20 74 68 65 20 70 61 72 61  rovides the para
a420: 6d 65 74 65 72 73 20 74 6f 20 74 68 65 20 43 4b  meters to the CK
a430: 4d 5f 52 43 32 5f 45 43 42 20 61 6e 64 0a 20 2a  M_RC2_ECB and. *
a440: 20 43 4b 4d 5f 52 43 32 5f 4d 41 43 20 6d 65 63   CKM_RC2_MAC mec
a450: 68 61 6e 69 73 6d 73 2e 20 20 41 6e 20 69 6e 73  hanisms.  An ins
a460: 74 61 6e 63 65 20 6f 66 20 43 4b 5f 52 43 32 5f  tance of CK_RC2_
a470: 50 41 52 41 4d 53 20 6a 75 73 74 0a 20 2a 20 68  PARAMS just. * h
a480: 6f 6c 64 73 20 74 68 65 20 65 66 66 65 63 74 69  olds the effecti
a490: 76 65 20 6b 65 79 73 69 7a 65 20 2a 2f 0a 74 79  ve keysize */.ty
a4a0: 70 65 64 65 66 20 43 4b 5f 55 4c 4f 4e 47 20 20  pedef CK_ULONG  
a4b0: 20 20 20 20 20 20 20 20 43 4b 5f 52 43 32 5f 50          CK_RC2_P
a4c0: 41 52 41 4d 53 3b 0a 0a 74 79 70 65 64 65 66 20  ARAMS;..typedef 
a4d0: 43 4b 5f 52 43 32 5f 50 41 52 41 4d 53 20 43 4b  CK_RC2_PARAMS CK
a4e0: 5f 50 54 52 20 43 4b 5f 52 43 32 5f 50 41 52 41  _PTR CK_RC2_PARA
a4f0: 4d 53 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f  MS_PTR;.../* CK_
a500: 52 43 32 5f 43 42 43 5f 50 41 52 41 4d 53 20 70  RC2_CBC_PARAMS p
a510: 72 6f 76 69 64 65 73 20 74 68 65 20 70 61 72 61  rovides the para
a520: 6d 65 74 65 72 73 20 74 6f 20 74 68 65 20 43 4b  meters to the CK
a530: 4d 5f 52 43 32 5f 43 42 43 0a 20 2a 20 6d 65 63  M_RC2_CBC. * mec
a540: 68 61 6e 69 73 6d 20 2a 2f 0a 74 79 70 65 64 65  hanism */.typede
a550: 66 20 73 74 72 75 63 74 20 43 4b 5f 52 43 32 5f  f struct CK_RC2_
a560: 43 42 43 5f 50 41 52 41 4d 53 20 7b 0a 20 20 2f  CBC_PARAMS {.  /
a570: 2a 20 75 6c 45 66 66 65 63 74 69 76 65 42 69 74  * ulEffectiveBit
a580: 73 20 77 61 73 20 63 68 61 6e 67 65 64 20 66 72  s was changed fr
a590: 6f 6d 20 43 4b 5f 55 53 48 4f 52 54 20 74 6f 20  om CK_USHORT to 
a5a0: 43 4b 5f 55 4c 4f 4e 47 20 66 6f 72 0a 20 20 20  CK_ULONG for.   
a5b0: 2a 20 76 32 2e 30 20 2a 2f 0a 20 20 43 4b 5f 55  * v2.0 */.  CK_U
a5c0: 4c 4f 4e 47 20 20 20 20 20 20 75 6c 45 66 66 65  LONG      ulEffe
a5d0: 63 74 69 76 65 42 69 74 73 3b 20 20 2f 2a 20 65  ctiveBits;  /* e
a5e0: 66 66 65 63 74 69 76 65 20 62 69 74 73 20 28 31  ffective bits (1
a5f0: 2d 31 30 32 34 29 20 2a 2f 0a 0a 20 20 43 4b 5f  -1024) */..  CK_
a600: 42 59 54 45 20 20 20 20 20 20 20 69 76 5b 38 5d  BYTE       iv[8]
a610: 3b 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20  ;            /* 
a620: 49 56 20 66 6f 72 20 43 42 43 20 6d 6f 64 65 20  IV for CBC mode 
a630: 2a 2f 0a 7d 20 43 4b 5f 52 43 32 5f 43 42 43 5f  */.} CK_RC2_CBC_
a640: 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65 64 65 66  PARAMS;..typedef
a650: 20 43 4b 5f 52 43 32 5f 43 42 43 5f 50 41 52 41   CK_RC2_CBC_PARA
a660: 4d 53 20 43 4b 5f 50 54 52 20 43 4b 5f 52 43 32  MS CK_PTR CK_RC2
a670: 5f 43 42 43 5f 50 41 52 41 4d 53 5f 50 54 52 3b  _CBC_PARAMS_PTR;
a680: 0a 0a 0a 2f 2a 20 43 4b 5f 52 43 32 5f 4d 41 43  .../* CK_RC2_MAC
a690: 5f 47 45 4e 45 52 41 4c 5f 50 41 52 41 4d 53 20  _GENERAL_PARAMS 
a6a0: 70 72 6f 76 69 64 65 73 20 74 68 65 20 70 61 72  provides the par
a6b0: 61 6d 65 74 65 72 73 20 66 6f 72 20 74 68 65 0a  ameters for the.
a6c0: 20 2a 20 43 4b 4d 5f 52 43 32 5f 4d 41 43 5f 47   * CKM_RC2_MAC_G
a6d0: 45 4e 45 52 41 4c 20 6d 65 63 68 61 6e 69 73 6d  ENERAL mechanism
a6e0: 20 2a 2f 0a 2f 2a 20 43 4b 5f 52 43 32 5f 4d 41   */./* CK_RC2_MA
a6f0: 43 5f 47 45 4e 45 52 41 4c 5f 50 41 52 41 4d 53  C_GENERAL_PARAMS
a700: 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32 2e 30   is new for v2.0
a710: 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75   */.typedef stru
a720: 63 74 20 43 4b 5f 52 43 32 5f 4d 41 43 5f 47 45  ct CK_RC2_MAC_GE
a730: 4e 45 52 41 4c 5f 50 41 52 41 4d 53 20 7b 0a 20  NERAL_PARAMS {. 
a740: 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75   CK_ULONG      u
a750: 6c 45 66 66 65 63 74 69 76 65 42 69 74 73 3b 20  lEffectiveBits; 
a760: 20 2f 2a 20 65 66 66 65 63 74 69 76 65 20 62 69   /* effective bi
a770: 74 73 20 28 31 2d 31 30 32 34 29 20 2a 2f 0a 20  ts (1-1024) */. 
a780: 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75   CK_ULONG      u
a790: 6c 4d 61 63 4c 65 6e 67 74 68 3b 20 20 20 20 20  lMacLength;     
a7a0: 20 2f 2a 20 4c 65 6e 67 74 68 20 6f 66 20 4d 41   /* Length of MA
a7b0: 43 20 69 6e 20 62 79 74 65 73 20 2a 2f 0a 7d 20  C in bytes */.} 
a7c0: 43 4b 5f 52 43 32 5f 4d 41 43 5f 47 45 4e 45 52  CK_RC2_MAC_GENER
a7d0: 41 4c 5f 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65  AL_PARAMS;..type
a7e0: 64 65 66 20 43 4b 5f 52 43 32 5f 4d 41 43 5f 47  def CK_RC2_MAC_G
a7f0: 45 4e 45 52 41 4c 5f 50 41 52 41 4d 53 20 43 4b  ENERAL_PARAMS CK
a800: 5f 50 54 52 20 5c 0a 20 20 43 4b 5f 52 43 32 5f  _PTR \.  CK_RC2_
a810: 4d 41 43 5f 47 45 4e 45 52 41 4c 5f 50 41 52 41  MAC_GENERAL_PARA
a820: 4d 53 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f  MS_PTR;.../* CK_
a830: 52 43 35 5f 50 41 52 41 4d 53 20 70 72 6f 76 69  RC5_PARAMS provi
a840: 64 65 73 20 74 68 65 20 70 61 72 61 6d 65 74 65  des the paramete
a850: 72 73 20 74 6f 20 74 68 65 20 43 4b 4d 5f 52 43  rs to the CKM_RC
a860: 35 5f 45 43 42 20 61 6e 64 0a 20 2a 20 43 4b 4d  5_ECB and. * CKM
a870: 5f 52 43 35 5f 4d 41 43 20 6d 65 63 68 61 6e 69  _RC5_MAC mechani
a880: 73 6d 73 20 2a 2f 0a 2f 2a 20 43 4b 5f 52 43 35  sms */./* CK_RC5
a890: 5f 50 41 52 41 4d 53 20 69 73 20 6e 65 77 20 66  _PARAMS is new f
a8a0: 6f 72 20 76 32 2e 30 20 2a 2f 0a 74 79 70 65 64  or v2.0 */.typed
a8b0: 65 66 20 73 74 72 75 63 74 20 43 4b 5f 52 43 35  ef struct CK_RC5
a8c0: 5f 50 41 52 41 4d 53 20 7b 0a 20 20 43 4b 5f 55  _PARAMS {.  CK_U
a8d0: 4c 4f 4e 47 20 20 20 20 20 20 75 6c 57 6f 72 64  LONG      ulWord
a8e0: 73 69 7a 65 3b 20 20 2f 2a 20 77 6f 72 64 73 69  size;  /* wordsi
a8f0: 7a 65 20 69 6e 20 62 69 74 73 20 2a 2f 0a 20 20  ze in bits */.  
a900: 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75 6c  CK_ULONG      ul
a910: 52 6f 75 6e 64 73 3b 20 20 20 20 2f 2a 20 6e 75  Rounds;    /* nu
a920: 6d 62 65 72 20 6f 66 20 72 6f 75 6e 64 73 20 2a  mber of rounds *
a930: 2f 0a 7d 20 43 4b 5f 52 43 35 5f 50 41 52 41 4d  /.} CK_RC5_PARAM
a940: 53 3b 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 52  S;..typedef CK_R
a950: 43 35 5f 50 41 52 41 4d 53 20 43 4b 5f 50 54 52  C5_PARAMS CK_PTR
a960: 20 43 4b 5f 52 43 35 5f 50 41 52 41 4d 53 5f 50   CK_RC5_PARAMS_P
a970: 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f 52 43 35 5f  TR;.../* CK_RC5_
a980: 43 42 43 5f 50 41 52 41 4d 53 20 70 72 6f 76 69  CBC_PARAMS provi
a990: 64 65 73 20 74 68 65 20 70 61 72 61 6d 65 74 65  des the paramete
a9a0: 72 73 20 74 6f 20 74 68 65 20 43 4b 4d 5f 52 43  rs to the CKM_RC
a9b0: 35 5f 43 42 43 0a 20 2a 20 6d 65 63 68 61 6e 69  5_CBC. * mechani
a9c0: 73 6d 20 2a 2f 0a 2f 2a 20 43 4b 5f 52 43 35 5f  sm */./* CK_RC5_
a9d0: 43 42 43 5f 50 41 52 41 4d 53 20 69 73 20 6e 65  CBC_PARAMS is ne
a9e0: 77 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 74 79  w for v2.0 */.ty
a9f0: 70 65 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f  pedef struct CK_
aa00: 52 43 35 5f 43 42 43 5f 50 41 52 41 4d 53 20 7b  RC5_CBC_PARAMS {
aa10: 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20  .  CK_ULONG     
aa20: 20 75 6c 57 6f 72 64 73 69 7a 65 3b 20 20 2f 2a   ulWordsize;  /*
aa30: 20 77 6f 72 64 73 69 7a 65 20 69 6e 20 62 69 74   wordsize in bit
aa40: 73 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20  s */.  CK_ULONG 
aa50: 20 20 20 20 20 75 6c 52 6f 75 6e 64 73 3b 20 20       ulRounds;  
aa60: 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20 72    /* number of r
aa70: 6f 75 6e 64 73 20 2a 2f 0a 20 20 43 4b 5f 42 59  ounds */.  CK_BY
aa80: 54 45 5f 50 54 52 20 20 20 70 49 76 3b 20 20 20  TE_PTR   pIv;   
aa90: 20 20 20 20 20 20 2f 2a 20 70 6f 69 6e 74 65 72        /* pointer
aaa0: 20 74 6f 20 49 56 20 2a 2f 0a 20 20 43 4b 5f 55   to IV */.  CK_U
aab0: 4c 4f 4e 47 20 20 20 20 20 20 75 6c 49 76 4c 65  LONG      ulIvLe
aac0: 6e 3b 20 20 20 20 20 2f 2a 20 6c 65 6e 67 74 68  n;     /* length
aad0: 20 6f 66 20 49 56 20 69 6e 20 62 79 74 65 73 20   of IV in bytes 
aae0: 2a 2f 0a 7d 20 43 4b 5f 52 43 35 5f 43 42 43 5f  */.} CK_RC5_CBC_
aaf0: 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65 64 65 66  PARAMS;..typedef
ab00: 20 43 4b 5f 52 43 35 5f 43 42 43 5f 50 41 52 41   CK_RC5_CBC_PARA
ab10: 4d 53 20 43 4b 5f 50 54 52 20 43 4b 5f 52 43 35  MS CK_PTR CK_RC5
ab20: 5f 43 42 43 5f 50 41 52 41 4d 53 5f 50 54 52 3b  _CBC_PARAMS_PTR;
ab30: 0a 0a 0a 2f 2a 20 43 4b 5f 52 43 35 5f 4d 41 43  .../* CK_RC5_MAC
ab40: 5f 47 45 4e 45 52 41 4c 5f 50 41 52 41 4d 53 20  _GENERAL_PARAMS 
ab50: 70 72 6f 76 69 64 65 73 20 74 68 65 20 70 61 72  provides the par
ab60: 61 6d 65 74 65 72 73 20 66 6f 72 20 74 68 65 0a  ameters for the.
ab70: 20 2a 20 43 4b 4d 5f 52 43 35 5f 4d 41 43 5f 47   * CKM_RC5_MAC_G
ab80: 45 4e 45 52 41 4c 20 6d 65 63 68 61 6e 69 73 6d  ENERAL mechanism
ab90: 20 2a 2f 0a 2f 2a 20 43 4b 5f 52 43 35 5f 4d 41   */./* CK_RC5_MA
aba0: 43 5f 47 45 4e 45 52 41 4c 5f 50 41 52 41 4d 53  C_GENERAL_PARAMS
abb0: 20 69 73 20 6e 65 77 20 66 6f 72 20 76 32 2e 30   is new for v2.0
abc0: 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75   */.typedef stru
abd0: 63 74 20 43 4b 5f 52 43 35 5f 4d 41 43 5f 47 45  ct CK_RC5_MAC_GE
abe0: 4e 45 52 41 4c 5f 50 41 52 41 4d 53 20 7b 0a 20  NERAL_PARAMS {. 
abf0: 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75   CK_ULONG      u
ac00: 6c 57 6f 72 64 73 69 7a 65 3b 20 20 20 2f 2a 20  lWordsize;   /* 
ac10: 77 6f 72 64 73 69 7a 65 20 69 6e 20 62 69 74 73  wordsize in bits
ac20: 20 2a 2f 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20   */.  CK_ULONG  
ac30: 20 20 20 20 75 6c 52 6f 75 6e 64 73 3b 20 20 20      ulRounds;   
ac40: 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20 72    /* number of r
ac50: 6f 75 6e 64 73 20 2a 2f 0a 20 20 43 4b 5f 55 4c  ounds */.  CK_UL
ac60: 4f 4e 47 20 20 20 20 20 20 75 6c 4d 61 63 4c 65  ONG      ulMacLe
ac70: 6e 67 74 68 3b 20 20 2f 2a 20 4c 65 6e 67 74 68  ngth;  /* Length
ac80: 20 6f 66 20 4d 41 43 20 69 6e 20 62 79 74 65 73   of MAC in bytes
ac90: 20 2a 2f 0a 7d 20 43 4b 5f 52 43 35 5f 4d 41 43   */.} CK_RC5_MAC
aca0: 5f 47 45 4e 45 52 41 4c 5f 50 41 52 41 4d 53 3b  _GENERAL_PARAMS;
acb0: 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 52 43 35  ..typedef CK_RC5
acc0: 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 5f 50 41 52  _MAC_GENERAL_PAR
acd0: 41 4d 53 20 43 4b 5f 50 54 52 20 5c 0a 20 20 43  AMS CK_PTR \.  C
ace0: 4b 5f 52 43 35 5f 4d 41 43 5f 47 45 4e 45 52 41  K_RC5_MAC_GENERA
acf0: 4c 5f 50 41 52 41 4d 53 5f 50 54 52 3b 0a 0a 0a  L_PARAMS_PTR;...
ad00: 2f 2a 20 43 4b 5f 4d 41 43 5f 47 45 4e 45 52 41  /* CK_MAC_GENERA
ad10: 4c 5f 50 41 52 41 4d 53 20 70 72 6f 76 69 64 65  L_PARAMS provide
ad20: 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73  s the parameters
ad30: 20 74 6f 20 6d 6f 73 74 20 62 6c 6f 63 6b 0a 20   to most block. 
ad40: 2a 20 63 69 70 68 65 72 73 27 20 4d 41 43 5f 47  * ciphers' MAC_G
ad50: 45 4e 45 52 41 4c 20 6d 65 63 68 61 6e 69 73 6d  ENERAL mechanism
ad60: 73 2e 20 20 49 74 73 20 76 61 6c 75 65 20 69 73  s.  Its value is
ad70: 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 0a 20   the length of. 
ad80: 2a 20 74 68 65 20 4d 41 43 20 2a 2f 0a 2f 2a 20  * the MAC */./* 
ad90: 43 4b 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 5f 50  CK_MAC_GENERAL_P
ada0: 41 52 41 4d 53 20 69 73 20 6e 65 77 20 66 6f 72  ARAMS is new for
adb0: 20 76 32 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66   v2.0 */.typedef
adc0: 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20   CK_ULONG       
add0: 20 20 20 43 4b 5f 4d 41 43 5f 47 45 4e 45 52 41     CK_MAC_GENERA
ade0: 4c 5f 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65 64  L_PARAMS;..typed
adf0: 65 66 20 43 4b 5f 4d 41 43 5f 47 45 4e 45 52 41  ef CK_MAC_GENERA
ae00: 4c 5f 50 41 52 41 4d 53 20 43 4b 5f 50 54 52 20  L_PARAMS CK_PTR 
ae10: 43 4b 5f 4d 41 43 5f 47 45 4e 45 52 41 4c 5f 50  CK_MAC_GENERAL_P
ae20: 41 52 41 4d 53 5f 50 54 52 3b 0a 0a 0a 2f 2a 20  ARAMS_PTR;.../* 
ae30: 43 4b 5f 53 4b 49 50 4a 41 43 4b 5f 50 52 49 56  CK_SKIPJACK_PRIV
ae40: 41 54 45 5f 57 52 41 50 5f 50 41 52 41 4d 53 20  ATE_WRAP_PARAMS 
ae50: 70 72 6f 76 69 64 65 73 20 74 68 65 20 70 61 72  provides the par
ae60: 61 6d 65 74 65 72 73 20 74 6f 20 74 68 65 0a 20  ameters to the. 
ae70: 2a 20 43 4b 4d 5f 53 4b 49 50 4a 41 43 4b 5f 50  * CKM_SKIPJACK_P
ae80: 52 49 56 41 54 45 5f 57 52 41 50 20 6d 65 63 68  RIVATE_WRAP mech
ae90: 61 6e 69 73 6d 20 2a 2f 0a 2f 2a 20 43 4b 5f 53  anism */./* CK_S
aea0: 4b 49 50 4a 41 43 4b 5f 50 52 49 56 41 54 45 5f  KIPJACK_PRIVATE_
aeb0: 57 52 41 50 5f 50 41 52 41 4d 53 20 69 73 20 6e  WRAP_PARAMS is n
aec0: 65 77 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 74  ew for v2.0 */.t
aed0: 79 70 65 64 65 66 20 73 74 72 75 63 74 20 43 4b  ypedef struct CK
aee0: 5f 53 4b 49 50 4a 41 43 4b 5f 50 52 49 56 41 54  _SKIPJACK_PRIVAT
aef0: 45 5f 57 52 41 50 5f 50 41 52 41 4d 53 20 7b 0a  E_WRAP_PARAMS {.
af00: 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20    CK_ULONG      
af10: 75 6c 50 61 73 73 77 6f 72 64 4c 65 6e 3b 0a 20  ulPasswordLen;. 
af20: 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 20 20 70   CK_BYTE_PTR   p
af30: 50 61 73 73 77 6f 72 64 3b 0a 20 20 43 4b 5f 55  Password;.  CK_U
af40: 4c 4f 4e 47 20 20 20 20 20 20 75 6c 50 75 62 6c  LONG      ulPubl
af50: 69 63 44 61 74 61 4c 65 6e 3b 0a 20 20 43 4b 5f  icDataLen;.  CK_
af60: 42 59 54 45 5f 50 54 52 20 20 20 70 50 75 62 6c  BYTE_PTR   pPubl
af70: 69 63 44 61 74 61 3b 0a 20 20 43 4b 5f 55 4c 4f  icData;.  CK_ULO
af80: 4e 47 20 20 20 20 20 20 75 6c 50 41 6e 64 47 4c  NG      ulPAndGL
af90: 65 6e 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20  en;.  CK_ULONG  
afa0: 20 20 20 20 75 6c 51 4c 65 6e 3b 0a 20 20 43 4b      ulQLen;.  CK
afb0: 5f 55 4c 4f 4e 47 20 20 20 20 20 20 75 6c 52 61  _ULONG      ulRa
afc0: 6e 64 6f 6d 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59  ndomLen;.  CK_BY
afd0: 54 45 5f 50 54 52 20 20 20 70 52 61 6e 64 6f 6d  TE_PTR   pRandom
afe0: 41 3b 0a 20 20 43 4b 5f 42 59 54 45 5f 50 54 52  A;.  CK_BYTE_PTR
aff0: 20 20 20 70 50 72 69 6d 65 50 3b 0a 20 20 43 4b     pPrimeP;.  CK
b000: 5f 42 59 54 45 5f 50 54 52 20 20 20 70 42 61 73  _BYTE_PTR   pBas
b010: 65 47 3b 0a 20 20 43 4b 5f 42 59 54 45 5f 50 54  eG;.  CK_BYTE_PT
b020: 52 20 20 20 70 53 75 62 70 72 69 6d 65 51 3b 0a  R   pSubprimeQ;.
b030: 7d 20 43 4b 5f 53 4b 49 50 4a 41 43 4b 5f 50 52  } CK_SKIPJACK_PR
b040: 49 56 41 54 45 5f 57 52 41 50 5f 50 41 52 41 4d  IVATE_WRAP_PARAM
b050: 53 3b 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 53  S;..typedef CK_S
b060: 4b 49 50 4a 41 43 4b 5f 50 52 49 56 41 54 45 5f  KIPJACK_PRIVATE_
b070: 57 52 41 50 5f 50 41 52 41 4d 53 20 43 4b 5f 50  WRAP_PARAMS CK_P
b080: 54 52 20 5c 0a 20 20 43 4b 5f 53 4b 49 50 4a 41  TR \.  CK_SKIPJA
b090: 43 4b 5f 50 52 49 56 41 54 45 5f 57 52 41 50 5f  CK_PRIVATE_WRAP_
b0a0: 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b 5f 53 4b 49  PTR;.../* CK_SKI
b0b0: 50 4a 41 43 4b 5f 52 45 4c 41 59 58 5f 50 41 52  PJACK_RELAYX_PAR
b0c0: 41 4d 53 20 70 72 6f 76 69 64 65 73 20 74 68 65  AMS provides the
b0d0: 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 74   parameters to t
b0e0: 68 65 0a 20 2a 20 43 4b 4d 5f 53 4b 49 50 4a 41  he. * CKM_SKIPJA
b0f0: 43 4b 5f 52 45 4c 41 59 58 20 6d 65 63 68 61 6e  CK_RELAYX mechan
b100: 69 73 6d 20 2a 2f 0a 2f 2a 20 43 4b 5f 53 4b 49  ism */./* CK_SKI
b110: 50 4a 41 43 4b 5f 52 45 4c 41 59 58 5f 50 41 52  PJACK_RELAYX_PAR
b120: 41 4d 53 20 69 73 20 6e 65 77 20 66 6f 72 20 76  AMS is new for v
b130: 32 2e 30 20 2a 2f 0a 74 79 70 65 64 65 66 20 73  2.0 */.typedef s
b140: 74 72 75 63 74 20 43 4b 5f 53 4b 49 50 4a 41 43  truct CK_SKIPJAC
b150: 4b 5f 52 45 4c 41 59 58 5f 50 41 52 41 4d 53 20  K_RELAYX_PARAMS 
b160: 7b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20  {.  CK_ULONG    
b170: 20 20 75 6c 4f 6c 64 57 72 61 70 70 65 64 58 4c    ulOldWrappedXL
b180: 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45 5f 50 54  en;.  CK_BYTE_PT
b190: 52 20 20 20 70 4f 6c 64 57 72 61 70 70 65 64 58  R   pOldWrappedX
b1a0: 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20  ;.  CK_ULONG    
b1b0: 20 20 75 6c 4f 6c 64 50 61 73 73 77 6f 72 64 4c    ulOldPasswordL
b1c0: 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45 5f 50 54  en;.  CK_BYTE_PT
b1d0: 52 20 20 20 70 4f 6c 64 50 61 73 73 77 6f 72 64  R   pOldPassword
b1e0: 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20  ;.  CK_ULONG    
b1f0: 20 20 75 6c 4f 6c 64 50 75 62 6c 69 63 44 61 74    ulOldPublicDat
b200: 61 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45 5f  aLen;.  CK_BYTE_
b210: 50 54 52 20 20 20 70 4f 6c 64 50 75 62 6c 69 63  PTR   pOldPublic
b220: 44 61 74 61 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47  Data;.  CK_ULONG
b230: 20 20 20 20 20 20 75 6c 4f 6c 64 52 61 6e 64 6f        ulOldRando
b240: 6d 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45 5f  mLen;.  CK_BYTE_
b250: 50 54 52 20 20 20 70 4f 6c 64 52 61 6e 64 6f 6d  PTR   pOldRandom
b260: 41 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20  A;.  CK_ULONG   
b270: 20 20 20 75 6c 4e 65 77 50 61 73 73 77 6f 72 64     ulNewPassword
b280: 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45 5f 50  Len;.  CK_BYTE_P
b290: 54 52 20 20 20 70 4e 65 77 50 61 73 73 77 6f 72  TR   pNewPasswor
b2a0: 64 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20  d;.  CK_ULONG   
b2b0: 20 20 20 75 6c 4e 65 77 50 75 62 6c 69 63 44 61     ulNewPublicDa
b2c0: 74 61 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45  taLen;.  CK_BYTE
b2d0: 5f 50 54 52 20 20 20 70 4e 65 77 50 75 62 6c 69  _PTR   pNewPubli
b2e0: 63 44 61 74 61 3b 0a 20 20 43 4b 5f 55 4c 4f 4e  cData;.  CK_ULON
b2f0: 47 20 20 20 20 20 20 75 6c 4e 65 77 52 61 6e 64  G      ulNewRand
b300: 6f 6d 4c 65 6e 3b 0a 20 20 43 4b 5f 42 59 54 45  omLen;.  CK_BYTE
b310: 5f 50 54 52 20 20 20 70 4e 65 77 52 61 6e 64 6f  _PTR   pNewRando
b320: 6d 41 3b 0a 7d 20 43 4b 5f 53 4b 49 50 4a 41 43  mA;.} CK_SKIPJAC
b330: 4b 5f 52 45 4c 41 59 58 5f 50 41 52 41 4d 53 3b  K_RELAYX_PARAMS;
b340: 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 53 4b 49  ..typedef CK_SKI
b350: 50 4a 41 43 4b 5f 52 45 4c 41 59 58 5f 50 41 52  PJACK_RELAYX_PAR
b360: 41 4d 53 20 43 4b 5f 50 54 52 20 5c 0a 20 20 43  AMS CK_PTR \.  C
b370: 4b 5f 53 4b 49 50 4a 41 43 4b 5f 52 45 4c 41 59  K_SKIPJACK_RELAY
b380: 58 5f 50 41 52 41 4d 53 5f 50 54 52 3b 0a 0a 0a  X_PARAMS_PTR;...
b390: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 43  typedef struct C
b3a0: 4b 5f 50 42 45 5f 50 41 52 41 4d 53 20 7b 0a 20  K_PBE_PARAMS {. 
b3b0: 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 20 20 20   CK_BYTE_PTR    
b3c0: 20 20 70 49 6e 69 74 56 65 63 74 6f 72 3b 0a 20    pInitVector;. 
b3d0: 20 43 4b 5f 55 54 46 38 43 48 41 52 5f 50 54 52   CK_UTF8CHAR_PTR
b3e0: 20 20 70 50 61 73 73 77 6f 72 64 3b 0a 20 20 43    pPassword;.  C
b3f0: 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20  K_ULONG         
b400: 75 6c 50 61 73 73 77 6f 72 64 4c 65 6e 3b 0a 20  ulPasswordLen;. 
b410: 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 20 20 20   CK_BYTE_PTR    
b420: 20 20 70 53 61 6c 74 3b 0a 20 20 43 4b 5f 55 4c    pSalt;.  CK_UL
b430: 4f 4e 47 20 20 20 20 20 20 20 20 20 75 6c 53 61  ONG         ulSa
b440: 6c 74 4c 65 6e 3b 0a 20 20 43 4b 5f 55 4c 4f 4e  ltLen;.  CK_ULON
b450: 47 20 20 20 20 20 20 20 20 20 75 6c 49 74 65 72  G         ulIter
b460: 61 74 69 6f 6e 3b 0a 7d 20 43 4b 5f 50 42 45 5f  ation;.} CK_PBE_
b470: 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65 64 65 66  PARAMS;..typedef
b480: 20 43 4b 5f 50 42 45 5f 50 41 52 41 4d 53 20 43   CK_PBE_PARAMS C
b490: 4b 5f 50 54 52 20 43 4b 5f 50 42 45 5f 50 41 52  K_PTR CK_PBE_PAR
b4a0: 41 4d 53 5f 50 54 52 3b 0a 0a 0a 2f 2a 20 43 4b  AMS_PTR;.../* CK
b4b0: 5f 4b 45 59 5f 57 52 41 50 5f 53 45 54 5f 4f 41  _KEY_WRAP_SET_OA
b4c0: 45 50 5f 50 41 52 41 4d 53 20 70 72 6f 76 69 64  EP_PARAMS provid
b4d0: 65 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72  es the parameter
b4e0: 73 20 74 6f 20 74 68 65 0a 20 2a 20 43 4b 4d 5f  s to the. * CKM_
b4f0: 4b 45 59 5f 57 52 41 50 5f 53 45 54 5f 4f 41 45  KEY_WRAP_SET_OAE
b500: 50 20 6d 65 63 68 61 6e 69 73 6d 20 2a 2f 0a 2f  P mechanism */./
b510: 2a 20 43 4b 5f 4b 45 59 5f 57 52 41 50 5f 53 45  * CK_KEY_WRAP_SE
b520: 54 5f 4f 41 45 50 5f 50 41 52 41 4d 53 20 69 73  T_OAEP_PARAMS is
b530: 20 6e 65 77 20 66 6f 72 20 76 32 2e 30 20 2a 2f   new for v2.0 */
b540: 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20  .typedef struct 
b550: 43 4b 5f 4b 45 59 5f 57 52 41 50 5f 53 45 54 5f  CK_KEY_WRAP_SET_
b560: 4f 41 45 50 5f 50 41 52 41 4d 53 20 7b 0a 20 20  OAEP_PARAMS {.  
b570: 43 4b 5f 42 59 54 45 20 20 20 20 20 20 20 62 42  CK_BYTE       bB
b580: 43 3b 20 20 20 20 20 2f 2a 20 62 6c 6f 63 6b 20  C;     /* block 
b590: 63 6f 6e 74 65 6e 74 73 20 62 79 74 65 20 2a 2f  contents byte */
b5a0: 0a 20 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 20  .  CK_BYTE_PTR  
b5b0: 20 70 58 3b 20 20 20 20 20 20 2f 2a 20 65 78 74   pX;      /* ext
b5c0: 72 61 20 64 61 74 61 20 2a 2f 0a 20 20 43 4b 5f  ra data */.  CK_
b5d0: 55 4c 4f 4e 47 20 20 20 20 20 20 75 6c 58 4c 65  ULONG      ulXLe
b5e0: 6e 3b 20 20 2f 2a 20 6c 65 6e 67 74 68 20 6f 66  n;  /* length of
b5f0: 20 65 78 74 72 61 20 64 61 74 61 20 69 6e 20 62   extra data in b
b600: 79 74 65 73 20 2a 2f 0a 7d 20 43 4b 5f 4b 45 59  ytes */.} CK_KEY
b610: 5f 57 52 41 50 5f 53 45 54 5f 4f 41 45 50 5f 50  _WRAP_SET_OAEP_P
b620: 41 52 41 4d 53 3b 0a 0a 74 79 70 65 64 65 66 20  ARAMS;..typedef 
b630: 43 4b 5f 4b 45 59 5f 57 52 41 50 5f 53 45 54 5f  CK_KEY_WRAP_SET_
b640: 4f 41 45 50 5f 50 41 52 41 4d 53 20 43 4b 5f 50  OAEP_PARAMS CK_P
b650: 54 52 20 5c 0a 20 20 43 4b 5f 4b 45 59 5f 57 52  TR \.  CK_KEY_WR
b660: 41 50 5f 53 45 54 5f 4f 41 45 50 5f 50 41 52 41  AP_SET_OAEP_PARA
b670: 4d 53 5f 50 54 52 3b 0a 0a 0a 74 79 70 65 64 65  MS_PTR;...typede
b680: 66 20 73 74 72 75 63 74 20 43 4b 5f 53 53 4c 33  f struct CK_SSL3
b690: 5f 52 41 4e 44 4f 4d 5f 44 41 54 41 20 7b 0a 20  _RANDOM_DATA {. 
b6a0: 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 20 70 43   CK_BYTE_PTR  pC
b6b0: 6c 69 65 6e 74 52 61 6e 64 6f 6d 3b 0a 20 20 43  lientRandom;.  C
b6c0: 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 75 6c 43 6c  K_ULONG     ulCl
b6d0: 69 65 6e 74 52 61 6e 64 6f 6d 4c 65 6e 3b 0a 20  ientRandomLen;. 
b6e0: 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 20 70 53   CK_BYTE_PTR  pS
b6f0: 65 72 76 65 72 52 61 6e 64 6f 6d 3b 0a 20 20 43  erverRandom;.  C
b700: 4b 5f 55 4c 4f 4e 47 20 20 20 20 20 75 6c 53 65  K_ULONG     ulSe
b710: 72 76 65 72 52 61 6e 64 6f 6d 4c 65 6e 3b 0a 7d  rverRandomLen;.}
b720: 20 43 4b 5f 53 53 4c 33 5f 52 41 4e 44 4f 4d 5f   CK_SSL3_RANDOM_
b730: 44 41 54 41 3b 0a 0a 0a 74 79 70 65 64 65 66 20  DATA;...typedef 
b740: 73 74 72 75 63 74 20 43 4b 5f 53 53 4c 33 5f 4d  struct CK_SSL3_M
b750: 41 53 54 45 52 5f 4b 45 59 5f 44 45 52 49 56 45  ASTER_KEY_DERIVE
b760: 5f 50 41 52 41 4d 53 20 7b 0a 20 20 43 4b 5f 53  _PARAMS {.  CK_S
b770: 53 4c 33 5f 52 41 4e 44 4f 4d 5f 44 41 54 41 20  SL3_RANDOM_DATA 
b780: 52 61 6e 64 6f 6d 49 6e 66 6f 3b 0a 20 20 43 4b  RandomInfo;.  CK
b790: 5f 56 45 52 53 49 4f 4e 5f 50 54 52 20 70 56 65  _VERSION_PTR pVe
b7a0: 72 73 69 6f 6e 3b 0a 7d 20 43 4b 5f 53 53 4c 33  rsion;.} CK_SSL3
b7b0: 5f 4d 41 53 54 45 52 5f 4b 45 59 5f 44 45 52 49  _MASTER_KEY_DERI
b7c0: 56 45 5f 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65  VE_PARAMS;..type
b7d0: 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f 53 53  def struct CK_SS
b7e0: 4c 33 5f 4d 41 53 54 45 52 5f 4b 45 59 5f 44 45  L3_MASTER_KEY_DE
b7f0: 52 49 56 45 5f 50 41 52 41 4d 53 20 43 4b 5f 50  RIVE_PARAMS CK_P
b800: 54 52 20 5c 0a 20 20 43 4b 5f 53 53 4c 33 5f 4d  TR \.  CK_SSL3_M
b810: 41 53 54 45 52 5f 4b 45 59 5f 44 45 52 49 56 45  ASTER_KEY_DERIVE
b820: 5f 50 41 52 41 4d 53 5f 50 54 52 3b 0a 0a 0a 74  _PARAMS_PTR;...t
b830: 79 70 65 64 65 66 20 73 74 72 75 63 74 20 43 4b  ypedef struct CK
b840: 5f 53 53 4c 33 5f 4b 45 59 5f 4d 41 54 5f 4f 55  _SSL3_KEY_MAT_OU
b850: 54 20 7b 0a 20 20 43 4b 5f 4f 42 4a 45 43 54 5f  T {.  CK_OBJECT_
b860: 48 41 4e 44 4c 45 20 68 43 6c 69 65 6e 74 4d 61  HANDLE hClientMa
b870: 63 53 65 63 72 65 74 3b 0a 20 20 43 4b 5f 4f 42  cSecret;.  CK_OB
b880: 4a 45 43 54 5f 48 41 4e 44 4c 45 20 68 53 65 72  JECT_HANDLE hSer
b890: 76 65 72 4d 61 63 53 65 63 72 65 74 3b 0a 20 20  verMacSecret;.  
b8a0: 43 4b 5f 4f 42 4a 45 43 54 5f 48 41 4e 44 4c 45  CK_OBJECT_HANDLE
b8b0: 20 68 43 6c 69 65 6e 74 4b 65 79 3b 0a 20 20 43   hClientKey;.  C
b8c0: 4b 5f 4f 42 4a 45 43 54 5f 48 41 4e 44 4c 45 20  K_OBJECT_HANDLE 
b8d0: 68 53 65 72 76 65 72 4b 65 79 3b 0a 20 20 43 4b  hServerKey;.  CK
b8e0: 5f 42 59 54 45 5f 50 54 52 20 20 20 20 20 20 70  _BYTE_PTR      p
b8f0: 49 56 43 6c 69 65 6e 74 3b 0a 20 20 43 4b 5f 42  IVClient;.  CK_B
b900: 59 54 45 5f 50 54 52 20 20 20 20 20 20 70 49 56  YTE_PTR      pIV
b910: 53 65 72 76 65 72 3b 0a 7d 20 43 4b 5f 53 53 4c  Server;.} CK_SSL
b920: 33 5f 4b 45 59 5f 4d 41 54 5f 4f 55 54 3b 0a 0a  3_KEY_MAT_OUT;..
b930: 74 79 70 65 64 65 66 20 43 4b 5f 53 53 4c 33 5f  typedef CK_SSL3_
b940: 4b 45 59 5f 4d 41 54 5f 4f 55 54 20 43 4b 5f 50  KEY_MAT_OUT CK_P
b950: 54 52 20 43 4b 5f 53 53 4c 33 5f 4b 45 59 5f 4d  TR CK_SSL3_KEY_M
b960: 41 54 5f 4f 55 54 5f 50 54 52 3b 0a 0a 0a 74 79  AT_OUT_PTR;...ty
b970: 70 65 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f  pedef struct CK_
b980: 53 53 4c 33 5f 4b 45 59 5f 4d 41 54 5f 50 41 52  SSL3_KEY_MAT_PAR
b990: 41 4d 53 20 7b 0a 20 20 43 4b 5f 55 4c 4f 4e 47  AMS {.  CK_ULONG
b9a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b9b0: 75 6c 4d 61 63 53 69 7a 65 49 6e 42 69 74 73 3b  ulMacSizeInBits;
b9c0: 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20 20 20 20  .  CK_ULONG     
b9d0: 20 20 20 20 20 20 20 20 20 20 20 75 6c 4b 65 79             ulKey
b9e0: 53 69 7a 65 49 6e 42 69 74 73 3b 0a 20 20 43 4b  SizeInBits;.  CK
b9f0: 5f 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20  _ULONG          
ba00: 20 20 20 20 20 20 75 6c 49 56 53 69 7a 65 49 6e        ulIVSizeIn
ba10: 42 69 74 73 3b 0a 20 20 43 4b 5f 42 42 4f 4f 4c  Bits;.  CK_BBOOL
ba20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ba30: 62 49 73 45 78 70 6f 72 74 3b 0a 20 20 43 4b 5f  bIsExport;.  CK_
ba40: 53 53 4c 33 5f 52 41 4e 44 4f 4d 5f 44 41 54 41  SSL3_RANDOM_DATA
ba50: 20 20 20 20 20 52 61 6e 64 6f 6d 49 6e 66 6f 3b       RandomInfo;
ba60: 0a 20 20 43 4b 5f 53 53 4c 33 5f 4b 45 59 5f 4d  .  CK_SSL3_KEY_M
ba70: 41 54 5f 4f 55 54 5f 50 54 52 20 70 52 65 74 75  AT_OUT_PTR pRetu
ba80: 72 6e 65 64 4b 65 79 4d 61 74 65 72 69 61 6c 3b  rnedKeyMaterial;
ba90: 0a 7d 20 43 4b 5f 53 53 4c 33 5f 4b 45 59 5f 4d  .} CK_SSL3_KEY_M
baa0: 41 54 5f 50 41 52 41 4d 53 3b 0a 0a 74 79 70 65  AT_PARAMS;..type
bab0: 64 65 66 20 43 4b 5f 53 53 4c 33 5f 4b 45 59 5f  def CK_SSL3_KEY_
bac0: 4d 41 54 5f 50 41 52 41 4d 53 20 43 4b 5f 50 54  MAT_PARAMS CK_PT
bad0: 52 20 43 4b 5f 53 53 4c 33 5f 4b 45 59 5f 4d 41  R CK_SSL3_KEY_MA
bae0: 54 5f 50 41 52 41 4d 53 5f 50 54 52 3b 0a 0a 0a  T_PARAMS_PTR;...
baf0: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 43  typedef struct C
bb00: 4b 5f 4b 45 59 5f 44 45 52 49 56 41 54 49 4f 4e  K_KEY_DERIVATION
bb10: 5f 53 54 52 49 4e 47 5f 44 41 54 41 20 7b 0a 20  _STRING_DATA {. 
bb20: 20 43 4b 5f 42 59 54 45 5f 50 54 52 20 70 44 61   CK_BYTE_PTR pDa
bb30: 74 61 3b 0a 20 20 43 4b 5f 55 4c 4f 4e 47 20 20  ta;.  CK_ULONG  
bb40: 20 20 75 6c 4c 65 6e 3b 0a 7d 20 43 4b 5f 4b 45    ulLen;.} CK_KE
bb50: 59 5f 44 45 52 49 56 41 54 49 4f 4e 5f 53 54 52  Y_DERIVATION_STR
bb60: 49 4e 47 5f 44 41 54 41 3b 0a 0a 74 79 70 65 64  ING_DATA;..typed
bb70: 65 66 20 43 4b 5f 4b 45 59 5f 44 45 52 49 56 41  ef CK_KEY_DERIVA
bb80: 54 49 4f 4e 5f 53 54 52 49 4e 47 5f 44 41 54 41  TION_STRING_DATA
bb90: 20 43 4b 5f 50 54 52 20 5c 0a 20 20 43 4b 5f 4b   CK_PTR \.  CK_K
bba0: 45 59 5f 44 45 52 49 56 41 54 49 4f 4e 5f 53 54  EY_DERIVATION_ST
bbb0: 52 49 4e 47 5f 44 41 54 41 5f 50 54 52 3b 0a 0a  RING_DATA_PTR;..
bbc0: 0a 2f 2a 20 54 68 65 20 43 4b 5f 45 58 54 52 41  ./* The CK_EXTRA
bbd0: 43 54 5f 50 41 52 41 4d 53 20 69 73 20 75 73 65  CT_PARAMS is use
bbe0: 64 20 66 6f 72 20 74 68 65 0a 20 2a 20 43 4b 4d  d for the. * CKM
bbf0: 5f 45 58 54 52 41 43 54 5f 4b 45 59 5f 46 52 4f  _EXTRACT_KEY_FRO
bc00: 4d 5f 4b 45 59 20 6d 65 63 68 61 6e 69 73 6d 2e  M_KEY mechanism.
bc10: 20 20 49 74 20 73 70 65 63 69 66 69 65 73 20 77    It specifies w
bc20: 68 69 63 68 20 62 69 74 0a 20 2a 20 6f 66 20 74  hich bit. * of t
bc30: 68 65 20 62 61 73 65 20 6b 65 79 20 73 68 6f 75  he base key shou
bc40: 6c 64 20 62 65 20 75 73 65 64 20 61 73 20 74 68  ld be used as th
bc50: 65 20 66 69 72 73 74 20 62 69 74 20 6f 66 20 74  e first bit of t
bc60: 68 65 0a 20 2a 20 64 65 72 69 76 65 64 20 6b 65  he. * derived ke
bc70: 79 20 2a 2f 0a 2f 2a 20 43 4b 5f 45 58 54 52 41  y */./* CK_EXTRA
bc80: 43 54 5f 50 41 52 41 4d 53 20 69 73 20 6e 65 77  CT_PARAMS is new
bc90: 20 66 6f 72 20 76 32 2e 30 20 2a 2f 0a 74 79 70   for v2.0 */.typ
bca0: 65 64 65 66 20 43 4b 5f 55 4c 4f 4e 47 20 43 4b  edef CK_ULONG CK
bcb0: 5f 45 58 54 52 41 43 54 5f 50 41 52 41 4d 53 3b  _EXTRACT_PARAMS;
bcc0: 0a 0a 74 79 70 65 64 65 66 20 43 4b 5f 45 58 54  ..typedef CK_EXT
bcd0: 52 41 43 54 5f 50 41 52 41 4d 53 20 43 4b 5f 50  RACT_PARAMS CK_P
bce0: 54 52 20 43 4b 5f 45 58 54 52 41 43 54 5f 50 41  TR CK_EXTRACT_PA
bcf0: 52 41 4d 53 5f 50 54 52 3b 0a 0a 2f 2a 20 43 4b  RAMS_PTR;../* CK
bd00: 5f 50 4b 43 53 35 5f 50 42 4b 44 32 5f 50 53 45  _PKCS5_PBKD2_PSE
bd10: 55 44 4f 5f 52 41 4e 44 4f 4d 5f 46 55 4e 43 54  UDO_RANDOM_FUNCT
bd20: 49 4f 4e 5f 54 59 50 45 20 69 73 20 6e 65 77 20  ION_TYPE is new 
bd30: 66 6f 72 20 76 32 2e 31 30 2e 0a 20 2a 20 43 4b  for v2.10.. * CK
bd40: 5f 50 4b 43 53 35 5f 50 42 4b 44 32 5f 50 53 45  _PKCS5_PBKD2_PSE
bd50: 55 44 4f 5f 52 41 4e 44 4f 4d 5f 46 55 4e 43 54  UDO_RANDOM_FUNCT
bd60: 49 4f 4e 5f 54 59 50 45 20 69 73 20 75 73 65 64  ION_TYPE is used
bd70: 20 74 6f 20 0a 20 2a 20 69 6e 64 69 63 61 74 65   to . * indicate
bd80: 20 74 68 65 20 50 73 65 75 64 6f 2d 52 61 6e 64   the Pseudo-Rand
bd90: 6f 6d 20 46 75 6e 63 74 69 6f 6e 20 28 50 52 46  om Function (PRF
bda0: 29 20 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61  ) used to genera
bdb0: 74 65 20 0a 20 2a 20 6b 65 79 20 62 69 74 73 20  te . * key bits 
bdc0: 75 73 69 6e 67 20 50 4b 43 53 20 23 35 20 50 42  using PKCS #5 PB
bdd0: 4b 44 46 32 2e 20 2a 2f 0a 74 79 70 65 64 65 66  KDF2. */.typedef
bde0: 20 43 4b 5f 55 4c 4f 4e 47 20 43 4b 5f 50 4b 43   CK_ULONG CK_PKC
bdf0: 53 35 5f 50 42 4b 44 32 5f 50 53 45 55 44 4f 5f  S5_PBKD2_PSEUDO_
be00: 52 41 4e 44 4f 4d 5f 46 55 4e 43 54 49 4f 4e 5f  RANDOM_FUNCTION_
be10: 54 59 50 45 3b 0a 0a 74 79 70 65 64 65 66 20 43  TYPE;..typedef C
be20: 4b 5f 50 4b 43 53 35 5f 50 42 4b 44 32 5f 50 53  K_PKCS5_PBKD2_PS
be30: 45 55 44 4f 5f 52 41 4e 44 4f 4d 5f 46 55 4e 43  EUDO_RANDOM_FUNC
be40: 54 49 4f 4e 5f 54 59 50 45 20 43 4b 5f 50 54 52  TION_TYPE CK_PTR
be50: 20 43 4b 5f 50 4b 43 53 35 5f 50 42 4b 44 32 5f   CK_PKCS5_PBKD2_
be60: 50 53 45 55 44 4f 5f 52 41 4e 44 4f 4d 5f 46 55  PSEUDO_RANDOM_FU
be70: 4e 43 54 49 4f 4e 5f 54 59 50 45 5f 50 54 52 3b  NCTION_TYPE_PTR;
be80: 0a 0a 2f 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69  ../* The followi
be90: 6e 67 20 50 52 46 73 20 61 72 65 20 64 65 66 69  ng PRFs are defi
bea0: 6e 65 64 20 69 6e 20 50 4b 43 53 20 23 35 20 76  ned in PKCS #5 v
beb0: 32 2e 30 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20  2.0. */.#define 
bec0: 43 4b 50 5f 50 4b 43 53 35 5f 50 42 4b 44 32 5f  CKP_PKCS5_PBKD2_
bed0: 48 4d 41 43 5f 53 48 41 31 20 30 78 30 30 30 30  HMAC_SHA1 0x0000
bee0: 30 30 30 31 0a 0a 0a 2f 2a 20 43 4b 5f 50 4b 43  0001.../* CK_PKC
bef0: 53 35 5f 50 42 4b 44 46 32 5f 53 41 4c 54 5f 53  S5_PBKDF2_SALT_S
bf00: 4f 55 52 43 45 5f 54 59 50 45 20 69 73 20 6e 65  OURCE_TYPE is ne
bf10: 77 20 66 6f 72 20 76 32 2e 31 30 2e 0a 20 2a 20  w for v2.10.. * 
bf20: 43 4b 5f 50 4b 43 53 35 5f 50 42 4b 44 46 32 5f  CK_PKCS5_PBKDF2_
bf30: 53 41 4c 54 5f 53 4f 55 52 43 45 5f 54 59 50 45  SALT_SOURCE_TYPE
bf40: 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e 64 69   is used to indi
bf50: 63 61 74 65 20 74 68 65 20 0a 20 2a 20 73 6f 75  cate the . * sou
bf60: 72 63 65 20 6f 66 20 74 68 65 20 73 61 6c 74 20  rce of the salt 
bf70: 76 61 6c 75 65 20 77 68 65 6e 20 64 65 72 69 76  value when deriv
bf80: 69 6e 67 20 61 20 6b 65 79 20 75 73 69 6e 67 20  ing a key using 
bf90: 50 4b 43 53 20 23 35 20 0a 20 2a 20 50 42 4b 44  PKCS #5 . * PBKD
bfa0: 46 32 2e 20 2a 2f 0a 74 79 70 65 64 65 66 20 43  F2. */.typedef C
bfb0: 4b 5f 55 4c 4f 4e 47 20 43 4b 5f 50 4b 43 53 35  K_ULONG CK_PKCS5
bfc0: 5f 50 42 4b 44 46 32 5f 53 41 4c 54 5f 53 4f 55  _PBKDF2_SALT_SOU
bfd0: 52 43 45 5f 54 59 50 45 3b 0a 0a 74 79 70 65 64  RCE_TYPE;..typed
bfe0: 65 66 20 43 4b 5f 50 4b 43 53 35 5f 50 42 4b 44  ef CK_PKCS5_PBKD
bff0: 46 32 5f 53 41 4c 54 5f 53 4f 55 52 43 45 5f 54  F2_SALT_SOURCE_T
c000: 59 50 45 20 43 4b 5f 50 54 52 20 43 4b 5f 50 4b  YPE CK_PTR CK_PK
c010: 43 53 35 5f 50 42 4b 44 46 32 5f 53 41 4c 54 5f  CS5_PBKDF2_SALT_
c020: 53 4f 55 52 43 45 5f 54 59 50 45 5f 50 54 52 3b  SOURCE_TYPE_PTR;
c030: 0a 0a 2f 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69  ../* The followi
c040: 6e 67 20 73 61 6c 74 20 76 61 6c 75 65 20 73 6f  ng salt value so
c050: 75 72 63 65 73 20 61 72 65 20 64 65 66 69 6e 65  urces are define
c060: 64 20 69 6e 20 50 4b 43 53 20 23 35 20 76 32 2e  d in PKCS #5 v2.
c070: 30 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4b  0. */.#define CK
c080: 5a 5f 53 41 4c 54 5f 53 50 45 43 49 46 49 45 44  Z_SALT_SPECIFIED
c090: 20 20 20 20 20 20 20 20 30 78 30 30 30 30 30 30          0x000000
c0a0: 30 31 0a 0a 2f 2a 20 43 4b 5f 50 4b 43 53 35 5f  01../* CK_PKCS5_
c0b0: 50 42 4b 44 32 5f 50 41 52 41 4d 53 20 69 73 20  PBKD2_PARAMS is 
c0c0: 6e 65 77 20 66 6f 72 20 76 32 2e 31 30 2e 0a 20  new for v2.10.. 
c0d0: 2a 20 43 4b 5f 50 4b 43 53 35 5f 50 42 4b 44 32  * CK_PKCS5_PBKD2
c0e0: 5f 50 41 52 41 4d 53 20 69 73 20 61 20 73 74 72  _PARAMS is a str
c0f0: 75 63 74 75 72 65 20 74 68 61 74 20 70 72 6f 76  ucture that prov
c100: 69 64 65 73 20 74 68 65 20 0a 20 2a 20 70 61 72  ides the . * par
c110: 61 6d 65 74 65 72 73 20 74 6f 20 74 68 65 20 43  ameters to the C
c120: 4b 4d 5f 50 4b 43 53 35 5f 50 42 4b 44 32 20 6d  KM_PKCS5_PBKD2 m
c130: 65 63 68 61 6e 69 73 6d 2e 20 2a 2f 0a 74 79 70  echanism. */.typ
c140: 65 64 65 66 20 73 74 72 75 63 74 20 43 4b 5f 50  edef struct CK_P
c150: 4b 43 53 35 5f 50 42 4b 44 32 5f 50 41 52 41 4d  KCS5_PBKD2_PARAM
c160: 53 20 7b 0a 09 43 4b 5f 50 4b 43 53 35 5f 50 42  S {..CK_PKCS5_PB
c170: 4b 44 46 32 5f 53 41 4c 54 5f 53 4f 55 52 43 45  KDF2_SALT_SOURCE
c180: 5f 54 59 50 45 20 20 20 20 20 20 20 20 20 20 20  _TYPE           
c190: 73 61 6c 74 53 6f 75 72 63 65 3b 0a 09 43 4b 5f  saltSource;..CK_
c1a0: 56 4f 49 44 5f 50 54 52 20 20 20 20 20 20 20 20  VOID_PTR        
c1b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c1c0: 20 20 20 20 20 20 20 20 70 53 61 6c 74 53 6f 75          pSaltSou
c1d0: 72 63 65 44 61 74 61 3b 0a 09 43 4b 5f 55 4c 4f  rceData;..CK_ULO
c1e0: 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NG              
c1f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c200: 20 20 20 20 20 75 6c 53 61 6c 74 53 6f 75 72 63       ulSaltSourc
c210: 65 44 61 74 61 4c 65 6e 3b 0a 09 43 4b 5f 55 4c  eDataLen;..CK_UL
c220: 4f 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20  ONG             
c230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c240: 20 20 20 20 20 20 69 74 65 72 61 74 69 6f 6e 73        iterations
c250: 3b 0a 09 43 4b 5f 50 4b 43 53 35 5f 50 42 4b 44  ;..CK_PKCS5_PBKD
c260: 32 5f 50 53 45 55 44 4f 5f 52 41 4e 44 4f 4d 5f  2_PSEUDO_RANDOM_
c270: 46 55 4e 43 54 49 4f 4e 5f 54 59 50 45 20 70 72  FUNCTION_TYPE pr
c280: 66 3b 0a 09 43 4b 5f 56 4f 49 44 5f 50 54 52 20  f;..CK_VOID_PTR 
c290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c2a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70                 p
c2b0: 50 72 66 44 61 74 61 3b 0a 09 43 4b 5f 55 4c 4f  PrfData;..CK_ULO
c2c0: 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NG              
c2d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c2e0: 20 20 20 20 20 75 6c 50 72 66 44 61 74 61 4c 65       ulPrfDataLe
c2f0: 6e 3b 0a 09 43 4b 5f 55 54 46 38 43 48 41 52 5f  n;..CK_UTF8CHAR_
c300: 50 54 52 20 20 20 20 20 20 20 20 20 20 20 20 20  PTR             
c310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70                 p
c320: 50 61 73 73 77 6f 72 64 3b 0a 09 43 4b 5f 55 4c  Password;..CK_UL
c330: 4f 4e 47 5f 50 54 52 20 20 20 20 20 20 20 20 20  ONG_PTR         
c340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c350: 20 20 20 20 20 20 75 6c 50 61 73 73 77 6f 72 64        ulPassword
c360: 4c 65 6e 3b 0a 7d 20 43 4b 5f 50 4b 43 53 35 5f  Len;.} CK_PKCS5_
c370: 50 42 4b 44 32 5f 50 41 52 41 4d 53 3b 0a 0a 74  PBKD2_PARAMS;..t
c380: 79 70 65 64 65 66 20 43 4b 5f 50 4b 43 53 35 5f  ypedef CK_PKCS5_
c390: 50 42 4b 44 32 5f 50 41 52 41 4d 53 20 43 4b 5f  PBKD2_PARAMS CK_
c3a0: 50 54 52 20 43 4b 5f 50 4b 43 53 35 5f 50 42 4b  PTR CK_PKCS5_PBK
c3b0: 44 32 5f 50 41 52 41 4d 53 5f 50 54 52 3b 0a 0a  D2_PARAMS_PTR;..
c3c0: 23 65 6e 64 69 66 0a                             #endif.