Blame misc/mech_types.h

Packit 8681c6
/*
Packit 8681c6
 * COPYRIGHT (c) International Business Machines Corp. 2005-2017
Packit 8681c6
 *
Packit 8681c6
 * This program is provided under the terms of the Common Public License,
Packit 8681c6
 * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this
Packit 8681c6
 * software constitutes recipient's acceptance of CPL-1.0 terms which can be
Packit 8681c6
 * found in the file LICENSE file or at
Packit 8681c6
 * https://opensource.org/licenses/cpl1.0.php
Packit 8681c6
 */
Packit 8681c6
Packit 8681c6
#ifndef _MECH_LIST_TYPES_H
Packit 8681c6
#define _MECH_LIST_TYPES_H
Packit 8681c6
Packit 8681c6
Packit 8681c6
/**
Packit 8681c6
 * These defines are copied over from the pkcs11types.h file found in
Packit 8681c6
 * the openCryptoki package.
Packit 8681c6
 */
Packit 8681c6
/* An unsigned value, at least 32 bits long */
Packit 8681c6
typedef unsigned long int CK_ULONG;
Packit 8681c6
Packit 8681c6
/* A signed value, the same size as a CK_ULONG */
Packit 8681c6
/* CK_LONG is new for v2.0 */
Packit 8681c6
typedef long int          CK_LONG;
Packit 8681c6
Packit 8681c6
/* At least 32 bits; each bit is a Boolean flag */
Packit 8681c6
typedef CK_ULONG          CK_FLAGS;
Packit 8681c6
Packit 8681c6
/* CK_MECHANISM_TYPE is a value that identifies a mechanism
Packit 8681c6
 * type */
Packit 8681c6
typedef CK_ULONG          CK_MECHANISM_TYPE;
Packit 8681c6
Packit 8681c6
/* The following mechanism types are defined: */
Packit 8681c6
#define CKM_RSA_PKCS_KEY_PAIR_GEN      0x00000000
Packit 8681c6
#define CKM_RSA_PKCS                   0x00000001
Packit 8681c6
#define CKM_RSA_9796                   0x00000002
Packit 8681c6
#define CKM_RSA_X_509                  0x00000003
Packit 8681c6
Packit 8681c6
/* CKM_MD2_RSA_PKCS, CKM_MD5_RSA_PKCS, and CKM_SHA1_RSA_PKCS
Packit 8681c6
 * are new for v2.0.  They are mechanisms which hash and sign */
Packit 8681c6
#define CKM_MD2_RSA_PKCS               0x00000004
Packit 8681c6
#define CKM_MD5_RSA_PKCS               0x00000005
Packit 8681c6
#define CKM_SHA1_RSA_PKCS              0x00000006
Packit 8681c6
/* The following are new for v2.11: */
Packit 8681c6
#define CKM_RIPEMD128_RSA_PKCS         0x00000007
Packit 8681c6
#define CKM_RIPEMD160_RSA_PKCS         0x00000008
Packit 8681c6
#define CKM_RSA_PKCS_OAEP              0x00000009
Packit 8681c6
#define CKM_RSA_X9_31_KEY_PAIR_GEN     0x0000000A
Packit 8681c6
#define CKM_RSA_X9_31                  0x0000000B
Packit 8681c6
#define CKM_SHA1_RSA_X9_31             0x0000000C
Packit 8681c6
#define CKM_RSA_PKCS_PSS               0x0000000D
Packit 8681c6
#define CKM_SHA1_RSA_PKCS_PSS          0x0000000E
Packit 8681c6
Packit 8681c6
#define CKM_DSA_KEY_PAIR_GEN           0x00000010
Packit 8681c6
#define CKM_DSA                        0x00000011
Packit 8681c6
#define CKM_DSA_SHA1                   0x00000012
Packit 8681c6
#define CKM_DH_PKCS_KEY_PAIR_GEN       0x00000020
Packit 8681c6
#define CKM_DH_PKCS_DERIVE             0x00000021
Packit 8681c6
/* The following are new for v2.11 */
Packit 8681c6
#define CKM_X9_42_DH_KEY_PAIR_GEN      0x00000030
Packit 8681c6
#define CKM_X9_42_DH_DERIVE            0x00000031
Packit 8681c6
#define CKM_X9_42_DH_HYBRID_DERIVE     0x00000032
Packit 8681c6
#define CKM_X9_42_MQV_DERIVE           0x00000033
Packit 8681c6
Packit 8681c6
#define CKM_RC2_KEY_GEN                0x00000100
Packit 8681c6
#define CKM_RC2_ECB                    0x00000101
Packit 8681c6
#define CKM_RC2_CBC                    0x00000102
Packit 8681c6
#define CKM_RC2_MAC                    0x00000103
Packit 8681c6
Packit 8681c6
/* CKM_RC2_MAC_GENERAL and CKM_RC2_CBC_PAD are new for v2.0 */
Packit 8681c6
#define CKM_RC2_MAC_GENERAL            0x00000104
Packit 8681c6
#define CKM_RC2_CBC_PAD                0x00000105
Packit 8681c6
Packit 8681c6
#define CKM_RC4_KEY_GEN                0x00000110
Packit 8681c6
#define CKM_RC4                        0x00000111
Packit 8681c6
#define CKM_DES_KEY_GEN                0x00000120
Packit 8681c6
#define CKM_DES_ECB                    0x00000121
Packit 8681c6
#define CKM_DES_CBC                    0x00000122
Packit 8681c6
#define CKM_DES_MAC                    0x00000123
Packit 8681c6
Packit 8681c6
/* CKM_DES_MAC_GENERAL and CKM_DES_CBC_PAD are new for v2.0 */
Packit 8681c6
#define CKM_DES_MAC_GENERAL            0x00000124
Packit 8681c6
#define CKM_DES_CBC_PAD                0x00000125
Packit 8681c6
Packit 8681c6
#define CKM_DES2_KEY_GEN               0x00000130
Packit 8681c6
#define CKM_DES3_KEY_GEN               0x00000131
Packit 8681c6
#define CKM_DES3_ECB                   0x00000132
Packit 8681c6
#define CKM_DES3_CBC                   0x00000133
Packit 8681c6
#define CKM_DES3_MAC                   0x00000134
Packit 8681c6
Packit 8681c6
/* CKM_DES3_MAC_GENERAL, CKM_DES3_CBC_PAD, CKM_CDMF_KEY_GEN,
Packit 8681c6
 * CKM_CDMF_ECB, CKM_CDMF_CBC, CKM_CDMF_MAC,
Packit 8681c6
 * CKM_CDMF_MAC_GENERAL, and CKM_CDMF_CBC_PAD are new for v2.0 */
Packit 8681c6
#define CKM_DES3_MAC_GENERAL           0x00000135
Packit 8681c6
#define CKM_DES3_CBC_PAD               0x00000136
Packit 8681c6
#define CKM_DES3_CMAC_GENERAL          0x00000137
Packit 8681c6
#define CKM_DES3_CMAC                  0x00000138
Packit 8681c6
#define CKM_CDMF_KEY_GEN               0x00000140
Packit 8681c6
#define CKM_CDMF_ECB                   0x00000141
Packit 8681c6
#define CKM_CDMF_CBC                   0x00000142
Packit 8681c6
#define CKM_CDMF_MAC                   0x00000143
Packit 8681c6
#define CKM_CDMF_MAC_GENERAL           0x00000144
Packit 8681c6
#define CKM_CDMF_CBC_PAD               0x00000145
Packit 8681c6
Packit 8681c6
#define CKM_MD2                        0x00000200
Packit 8681c6
Packit 8681c6
/* CKM_MD2_HMAC and CKM_MD2_HMAC_GENERAL are new for v2.0 */
Packit 8681c6
#define CKM_MD2_HMAC                   0x00000201
Packit 8681c6
#define CKM_MD2_HMAC_GENERAL           0x00000202
Packit 8681c6
Packit 8681c6
#define CKM_MD5                        0x00000210
Packit 8681c6
Packit 8681c6
/* CKM_MD5_HMAC and CKM_MD5_HMAC_GENERAL are new for v2.0 */
Packit 8681c6
#define CKM_MD5_HMAC                   0x00000211
Packit 8681c6
#define CKM_MD5_HMAC_GENERAL           0x00000212
Packit 8681c6
Packit 8681c6
#define CKM_SHA_1                      0x00000220
Packit 8681c6
Packit 8681c6
/* CKM_SHA_1_HMAC and CKM_SHA_1_HMAC_GENERAL are new for v2.0 */
Packit 8681c6
#define CKM_SHA_1_HMAC                 0x00000221
Packit 8681c6
#define CKM_SHA_1_HMAC_GENERAL         0x00000222
Packit 8681c6
Packit 8681c6
/* The following are new for v2.11 */
Packit 8681c6
#define CKM_RIPEMD128                  0x00000230
Packit 8681c6
#define CKM_RIPEMD128_HMAC             0x00000231
Packit 8681c6
#define CKM_RIPEMD128_HMAC_GENERAL     0x00000232
Packit 8681c6
#define CKM_RIPEMD160                  0x00000240
Packit 8681c6
#define CKM_RIPEMD160_HMAC             0x00000241
Packit 8681c6
#define CKM_RIPEMD160_HMAC_GENERAL     0x00000242
Packit 8681c6
Packit 8681c6
/* All of the following mechanisms are new for v2.0 */
Packit 8681c6
/* Note that CAST128 and CAST5 are the same algorithm */
Packit 8681c6
#define CKM_CAST_KEY_GEN               0x00000300
Packit 8681c6
#define CKM_CAST_ECB                   0x00000301
Packit 8681c6
#define CKM_CAST_CBC                   0x00000302
Packit 8681c6
#define CKM_CAST_MAC                   0x00000303
Packit 8681c6
#define CKM_CAST_MAC_GENERAL           0x00000304
Packit 8681c6
#define CKM_CAST_CBC_PAD               0x00000305
Packit 8681c6
#define CKM_CAST3_KEY_GEN              0x00000310
Packit 8681c6
#define CKM_CAST3_ECB                  0x00000311
Packit 8681c6
#define CKM_CAST3_CBC                  0x00000312
Packit 8681c6
#define CKM_CAST3_MAC                  0x00000313
Packit 8681c6
#define CKM_CAST3_MAC_GENERAL          0x00000314
Packit 8681c6
#define CKM_CAST3_CBC_PAD              0x00000315
Packit 8681c6
#define CKM_CAST5_KEY_GEN              0x00000320
Packit 8681c6
#define CKM_CAST128_KEY_GEN            0x00000320
Packit 8681c6
#define CKM_CAST5_ECB                  0x00000321
Packit 8681c6
#define CKM_CAST128_ECB                0x00000321
Packit 8681c6
#define CKM_CAST5_CBC                  0x00000322
Packit 8681c6
#define CKM_CAST128_CBC                0x00000322
Packit 8681c6
#define CKM_CAST5_MAC                  0x00000323
Packit 8681c6
#define CKM_CAST128_MAC                0x00000323
Packit 8681c6
#define CKM_CAST5_MAC_GENERAL          0x00000324
Packit 8681c6
#define CKM_CAST128_MAC_GENERAL        0x00000324
Packit 8681c6
#define CKM_CAST5_CBC_PAD              0x00000325
Packit 8681c6
#define CKM_CAST128_CBC_PAD            0x00000325
Packit 8681c6
#define CKM_RC5_KEY_GEN                0x00000330
Packit 8681c6
#define CKM_RC5_ECB                    0x00000331
Packit 8681c6
#define CKM_RC5_CBC                    0x00000332
Packit 8681c6
#define CKM_RC5_MAC                    0x00000333
Packit 8681c6
#define CKM_RC5_MAC_GENERAL            0x00000334
Packit 8681c6
#define CKM_RC5_CBC_PAD                0x00000335
Packit 8681c6
#define CKM_IDEA_KEY_GEN               0x00000340
Packit 8681c6
#define CKM_IDEA_ECB                   0x00000341
Packit 8681c6
#define CKM_IDEA_CBC                   0x00000342
Packit 8681c6
#define CKM_IDEA_MAC                   0x00000343
Packit 8681c6
#define CKM_IDEA_MAC_GENERAL           0x00000344
Packit 8681c6
#define CKM_IDEA_CBC_PAD               0x00000345
Packit 8681c6
#define CKM_GENERIC_SECRET_KEY_GEN     0x00000350
Packit 8681c6
#define CKM_CONCATENATE_BASE_AND_KEY   0x00000360
Packit 8681c6
#define CKM_CONCATENATE_BASE_AND_DATA  0x00000362
Packit 8681c6
#define CKM_CONCATENATE_DATA_AND_BASE  0x00000363
Packit 8681c6
#define CKM_XOR_BASE_AND_DATA          0x00000364
Packit 8681c6
#define CKM_EXTRACT_KEY_FROM_KEY       0x00000365
Packit 8681c6
#define CKM_SSL3_PRE_MASTER_KEY_GEN    0x00000370
Packit 8681c6
#define CKM_SSL3_MASTER_KEY_DERIVE     0x00000371
Packit 8681c6
#define CKM_SSL3_KEY_AND_MAC_DERIVE    0x00000372
Packit 8681c6
/* The following are new for v2.11 */
Packit 8681c6
#define CKM_SSL3_MASTER_KEY_DERIVE_DH  0x00000373
Packit 8681c6
#define CKM_TLS_PRE_MASTER_KEY_GEN     0x00000374
Packit 8681c6
#define CKM_TLS_MASTER_KEY_DERIVE      0x00000375
Packit 8681c6
#define CKM_TLS_KEY_AND_MAC_DERIVE     0x00000376
Packit 8681c6
#define CKM_TLS_MASTER_KEY_DERIVE_DH   0x00000377
Packit 8681c6
Packit 8681c6
#define CKM_SSL3_MD5_MAC               0x00000380
Packit 8681c6
#define CKM_SSL3_SHA1_MAC              0x00000381
Packit 8681c6
#define CKM_MD5_KEY_DERIVATION         0x00000390
Packit 8681c6
#define CKM_MD2_KEY_DERIVATION         0x00000391
Packit 8681c6
#define CKM_SHA1_KEY_DERIVATION        0x00000392
Packit 8681c6
#define CKM_PBE_MD2_DES_CBC            0x000003A0
Packit 8681c6
#define CKM_PBE_MD5_DES_CBC            0x000003A1
Packit 8681c6
#define CKM_PBE_MD5_CAST_CBC           0x000003A2
Packit 8681c6
#define CKM_PBE_MD5_CAST3_CBC          0x000003A3
Packit 8681c6
#define CKM_PBE_MD5_CAST5_CBC          0x000003A4
Packit 8681c6
#define CKM_PBE_MD5_CAST128_CBC        0x000003A4
Packit 8681c6
#define CKM_PBE_SHA1_CAST5_CBC         0x000003A5
Packit 8681c6
#define CKM_PBE_SHA1_CAST128_CBC       0x000003A5
Packit 8681c6
#define CKM_PBE_SHA1_RC4_128           0x000003A6
Packit 8681c6
#define CKM_PBE_SHA1_RC4_40            0x000003A7
Packit 8681c6
#define CKM_PBE_SHA1_DES3_EDE_CBC      0x000003A8
Packit 8681c6
#define CKM_PBE_SHA1_DES2_EDE_CBC      0x000003A9
Packit 8681c6
#define CKM_PBE_SHA1_RC2_128_CBC       0x000003AA
Packit 8681c6
#define CKM_PBE_SHA1_RC2_40_CBC        0x000003AB
Packit 8681c6
/* CKM_PKCS5_PBKD2 is new for v2.11 */
Packit 8681c6
#define CKM_PKCS5_PBKD2                0x000003B0
Packit 8681c6
#define CKM_PBA_SHA1_WITH_SHA1_HMAC    0x000003C0
Packit 8681c6
#define CKM_KEY_WRAP_LYNKS             0x00000400
Packit 8681c6
#define CKM_KEY_WRAP_SET_OAEP          0x00000401
Packit 8681c6
Packit 8681c6
/* Fortezza mechanisms */
Packit 8681c6
#define CKM_SKIPJACK_KEY_GEN           0x00001000
Packit 8681c6
#define CKM_SKIPJACK_ECB64             0x00001001
Packit 8681c6
#define CKM_SKIPJACK_CBC64             0x00001002
Packit 8681c6
#define CKM_SKIPJACK_OFB64             0x00001003
Packit 8681c6
#define CKM_SKIPJACK_CFB64             0x00001004
Packit 8681c6
#define CKM_SKIPJACK_CFB32             0x00001005
Packit 8681c6
#define CKM_SKIPJACK_CFB16             0x00001006
Packit 8681c6
#define CKM_SKIPJACK_CFB8              0x00001007
Packit 8681c6
#define CKM_SKIPJACK_WRAP              0x00001008
Packit 8681c6
#define CKM_SKIPJACK_PRIVATE_WRAP      0x00001009
Packit 8681c6
#define CKM_SKIPJACK_RELAYX            0x0000100a
Packit 8681c6
#define CKM_KEA_KEY_PAIR_GEN           0x00001010
Packit 8681c6
#define CKM_KEA_KEY_DERIVE             0x00001011
Packit 8681c6
#define CKM_FORTEZZA_TIMESTAMP         0x00001020
Packit 8681c6
#define CKM_BATON_KEY_GEN              0x00001030
Packit 8681c6
#define CKM_BATON_ECB128               0x00001031
Packit 8681c6
#define CKM_BATON_ECB96                0x00001032
Packit 8681c6
#define CKM_BATON_CBC128               0x00001033
Packit 8681c6
#define CKM_BATON_COUNTER              0x00001034
Packit 8681c6
#define CKM_BATON_SHUFFLE              0x00001035
Packit 8681c6
#define CKM_BATON_WRAP                 0x00001036
Packit 8681c6
Packit 8681c6
/* CKM_ECDSA_KEY_PAIR_GEN is deprecated in v2.11,
Packit 8681c6
 * CKM_EC_KEY_PAIR_GEN is preferred. */
Packit 8681c6
#define CKM_ECDSA_KEY_PAIR_GEN         0x00001040
Packit 8681c6
#define CKM_EC_KEY_PAIR_GEN            0x00001040
Packit 8681c6
#define CKM_ECDSA                      0x00001041
Packit 8681c6
#define CKM_ECDSA_SHA1                 0x00001042
Packit 8681c6
/* The following are new for v2.3 */
Packit 8681c6
#define CKM_ECDSA_SHA224               0x00001043
Packit 8681c6
#define CKM_ECDSA_SHA256               0x00001044
Packit 8681c6
#define CKM_ECDSA_SHA384               0x00001045
Packit 8681c6
#define CKM_ECDSA_SHA512               0x00001046
Packit 8681c6
/* The following are new for v2.11 */
Packit 8681c6
#define CKM_ECDH1_DERIVE               0x00001050
Packit 8681c6
#define CKM_ECDH1_COFACTOR_DERIVE      0x00001051
Packit 8681c6
#define CKM_ECMQV_DERIVE               0x00001052
Packit 8681c6
Packit 8681c6
#define CKM_JUNIPER_KEY_GEN            0x00001060
Packit 8681c6
#define CKM_JUNIPER_ECB128             0x00001061
Packit 8681c6
#define CKM_JUNIPER_CBC128             0x00001062
Packit 8681c6
#define CKM_JUNIPER_COUNTER            0x00001063
Packit 8681c6
#define CKM_JUNIPER_SHUFFLE            0x00001064
Packit 8681c6
#define CKM_JUNIPER_WRAP               0x00001065
Packit 8681c6
#define CKM_FASTHASH                   0x00001070
Packit 8681c6
/* The following are new for v2.11 */
Packit 8681c6
#define CKM_AES_KEY_GEN                0x00001080
Packit 8681c6
#define CKM_AES_ECB                    0x00001081
Packit 8681c6
#define CKM_AES_CBC                    0x00001082
Packit 8681c6
#define CKM_AES_MAC                    0x00001083
Packit 8681c6
#define CKM_AES_MAC_GENERAL            0x00001084
Packit 8681c6
#define CKM_AES_CBC_PAD                0x00001085
Packit 8681c6
#define CKM_AES_CMAC_GENERAL           0x00001089
Packit 8681c6
#define CKM_AES_CMAC                   0x0000108A
Packit 8681c6
#define CKM_DSA_PARAMETER_GEN          0x00002000
Packit 8681c6
#define CKM_DH_PKCS_PARAMETER_GEN      0x00002001
Packit 8681c6
#define CKM_X9_42_DH_PARAMETER_GEN     0x00002002
Packit 8681c6
Packit 8681c6
#define CKM_VENDOR_DEFINED             0x80000000
Packit 8681c6
Packit 8681c6
#define CK_PTR *
Packit 8681c6
typedef void        CK_PTR   CK_VOID_PTR;
Packit 8681c6
typedef CK_VOID_PTR CK_PTR CK_VOID_PTR_PTR;
Packit 8681c6
Packit 8681c6
/* CK_MECHANISM is a structure that specifies a particular
Packit 8681c6
 * mechanism  */
Packit 8681c6
typedef struct CK_MECHANISM {
Packit 8681c6
  CK_MECHANISM_TYPE mechanism;
Packit 8681c6
  CK_VOID_PTR       pParameter;
Packit 8681c6
  CK_ULONG          ulParameterLen;  /* in bytes */
Packit 8681c6
} CK_MECHANISM;
Packit 8681c6
Packit 8681c6
typedef CK_MECHANISM CK_PTR CK_MECHANISM_PTR;
Packit 8681c6
Packit 8681c6
/* CK_MECHANISM_INFO provides information about a particular
Packit 8681c6
 * mechanism */
Packit 8681c6
typedef struct CK_MECHANISM_INFO {
Packit 8681c6
    CK_ULONG    ulMinKeySize;
Packit 8681c6
    CK_ULONG    ulMaxKeySize;
Packit 8681c6
    CK_FLAGS    flags;
Packit 8681c6
} CK_MECHANISM_INFO;
Packit 8681c6
Packit 8681c6
/* The flags are defined as follows:
Packit 8681c6
 *      Bit Flag               Mask        Meaning */
Packit 8681c6
#define CKF_HW                 0x00000001  /* performed by HW */
Packit 8681c6
Packit 8681c6
/* The flags CKF_ENCRYPT, CKF_DECRYPT, CKF_DIGEST, CKF_SIGN,
Packit 8681c6
 * CKG_SIGN_RECOVER, CKF_VERIFY, CKF_VERIFY_RECOVER,
Packit 8681c6
 * CKF_GENERATE, CKF_GENERATE_KEY_PAIR, CKF_WRAP, CKF_UNWRAP,
Packit 8681c6
 * and CKF_DERIVE are new for v2.0.  They specify whether or not
Packit 8681c6
 * a mechanism can be used for a particular task */
Packit 8681c6
#define CKF_ENCRYPT            0x00000100
Packit 8681c6
#define CKF_DECRYPT            0x00000200
Packit 8681c6
#define CKF_DIGEST             0x00000400
Packit 8681c6
#define CKF_SIGN               0x00000800
Packit 8681c6
#define CKF_SIGN_RECOVER       0x00001000
Packit 8681c6
#define CKF_VERIFY             0x00002000
Packit 8681c6
#define CKF_VERIFY_RECOVER     0x00004000
Packit 8681c6
#define CKF_GENERATE           0x00008000
Packit 8681c6
#define CKF_GENERATE_KEY_PAIR  0x00010000
Packit 8681c6
#define CKF_WRAP               0x00020000
Packit 8681c6
#define CKF_UNWRAP             0x00040000
Packit 8681c6
#define CKF_DERIVE             0x00080000
Packit 8681c6
/* The following are new for v2.11 */
Packit 8681c6
#define CKF_EC_F_P             0x00100000
Packit 8681c6
#define CKF_EC_F_2M            0x00200000
Packit 8681c6
#define CKF_EC_ECPARAMETERS    0x00400000
Packit 8681c6
#define CKF_EC_NAMEDCURVE      0x00800000
Packit 8681c6
#define CKF_EC_UNCOMPRESS      0x01000000
Packit 8681c6
#define CKF_EC_COMPRESS        0x02000000
Packit 8681c6
Packit 8681c6
#define CKF_EXTENSION          0x80000000  /* FALSE for 2.01 */
Packit 8681c6
Packit 8681c6
typedef CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR;
Packit 8681c6
Packit 8681c6
#define CKR_MECHANISM_INVALID                 0x00000070
Packit 8681c6
#define CKR_MECHANISM_PARAM_INVALID           0x00000071
Packit 8681c6
Packit 8681c6
Packit 8681c6
/* From common/host_defs.h in openCryptoki */
Packit 8681c6
typedef struct _MECH_LIST_ELEMENT
Packit 8681c6
{
Packit 8681c6
   CK_MECHANISM_TYPE    mech_type;
Packit 8681c6
   CK_MECHANISM_INFO    mech_info;
Packit 8681c6
} MECH_LIST_ELEMENT;
Packit 8681c6
Packit 8681c6
struct mech_list;
Packit 8681c6
Packit 8681c6
struct mech_list {
Packit 8681c6
  struct mech_list *next;
Packit 8681c6
  MECH_LIST_ELEMENT element;
Packit 8681c6
};
Packit 8681c6
Packit 8681c6
#endif