summaryrefslogtreecommitdiff
path: root/security/nss/lib/fortcrypt/maci.h
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/lib/fortcrypt/maci.h')
-rw-r--r--security/nss/lib/fortcrypt/maci.h776
1 files changed, 776 insertions, 0 deletions
diff --git a/security/nss/lib/fortcrypt/maci.h b/security/nss/lib/fortcrypt/maci.h
new file mode 100644
index 000000000..eb38ff81c
--- /dev/null
+++ b/security/nss/lib/fortcrypt/maci.h
@@ -0,0 +1,776 @@
+/*
+ * The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is the Netscape security libraries.
+ *
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the
+ * terms of the GNU General Public License Version 2 or later (the
+ * "GPL"), in which case the provisions of the GPL are applicable
+ * instead of those above. If you wish to allow use of your
+ * version of this file only under the terms of the GPL and not to
+ * allow others to use your version of this file under the MPL,
+ * indicate your decision by deleting the provisions above and
+ * replace them with the notice and other provisions required by
+ * the GPL. If you do not delete the provisions above, a recipient
+ * may use your version of this file under either the MPL or the
+ * GPL.
+ */
+/* @(#)maci.h 1.27\t05 Jan 1996 */
+/*****************************************************************************
+ Definitive Fortezza header file.
+ Application Level Interface to Fortezza MACI Library.
+
+ Version for CI Library 1.52
+ January 5, 1996
+
+
+ NOTICE: Fortezza Export Policy
+
+ The Fortezza Cryptologic Interface (CI) Library (both source and
+ object) and Fortezza CI Library based applications are defense
+ articles, as defined in the International Traffic In Arms
+ Regulations (ITAR), and are subject to export controls under the
+ ITAR and the Arms Export Control Act. Any export to any country
+ of (a) the Fortezza CI Library, related documentation, and
+ technical data, or (b) your cryptographic application, process,
+ or service that is the direct product of, or contains the
+ Fortezza CI Library must comply with the requirements of the ITAR.
+ If you or your customer intends to engage in such export, contact
+ the United States Department of State, Office of Defense Trade
+ Controls for specific guidance.
+
+
+ ****************************************************************************/
+#ifndef __MACI_H
+#define __MACI_H
+
+#if __cplusplus__ || __cplusplus
+extern "C"
+{
+#endif /* C++ */
+
+
+#ifndef __CRYPTINT_H
+
+#ifndef PROTO_LIST
+#ifdef _K_AND_R_
+#define PROTO_LIST(list) ()
+#else
+#define PROTO_LIST(list) list
+#endif /*_K_AND_R_ */
+#endif /* PROTO_LIST */
+
+
+#ifndef RETURN_TYPE
+#if defined( _WIN32 ) || defined( __WIN32__ )
+#define RETURN_TYPE extern _declspec( dllimport ) int _cdecl
+#elif defined( _WINDOWS ) || defined( _Windows )
+#define RETURN_TYPE extern int _far _pascal
+#else
+#define RETURN_TYPE extern int
+#endif /* Windows */
+#endif /* RETURN_TYPE */
+
+/* MS Visual C++ defines _MSDOS and _WINDOWS */
+/* Borland C/C++ defines __MSDOS__ and _Windows */
+#if (defined( _WINDOWS ) || defined( _Windows )) && \
+ !(defined( _WIN32 ) || defined( __WIN32__ ))
+#define CI_FAR _far
+#else
+#define CI_FAR
+#endif /* MS DOS or Windows */
+
+
+/*****************************************************************************
+ Constants
+ ****************************************************************************/
+#define CI_LIB_VERSION_VAL 0x0152 /* Version 1.52 */
+
+#define CI_CERT_SIZE 2048
+#define CI_CERT_FLAGS_SIZE 16
+#define CI_CERT_NAME_SIZE 32
+#define CI_CHALLENGE_SIZE 20
+
+#define CI_G_SIZE 128
+
+#define CI_HASHVALUE_SIZE 20
+
+#define CI_IV_SIZE 24
+
+#define CI_KEY_SIZE 12
+#define CI_KS_SIZE 10
+
+#define CI_NAME_SIZE 32
+
+#define CI_PASSWORD_SIZE 24
+#define CI_PIN_SIZE 12
+#define CI_P_SIZE 128
+
+#define CI_Q_SIZE 20
+
+#define CI_R_SIZE 40
+#define CI_RANDOM_NO_SIZE 20
+#define CI_RANDOM_SEED_SIZE 8
+#define CI_RA_SIZE 128
+#define CI_RB_SIZE 128
+#define CI_REG_FLAGS_SIZE 4
+
+#define CI_S_SIZE 40
+#define CI_SAVE_DATA_SIZE 28
+#define CI_SERIAL_NUMBER_SIZE 8
+#define CI_SIGNATURE_SIZE 40
+#define CI_STATUS_FLAGS_SIZE 4
+
+#define CI_TIME_SIZE 16
+#define CI_TIMESTAMP_SIZE 16
+
+#define CI_WRAPPED_X_SIZE 24
+
+#define CI_Y_SIZE 128
+
+#define CI_X_SIZE 20
+
+
+/* Miscellaneous */
+#define CI_NULL_FLAG 0
+#define CI_POWER_DOWN_FLAG 2
+#define CI_NO_LOG_OFF_FLAG 4
+#define CI_INITIATOR_FLAG 0
+#define CI_RECIPIENT_FLAG 1
+
+#define CI_BLOCK_LOCK_FLAG 1
+#define CI_SSO_LOGGED_ON 0x40
+#define CI_USER_LOGGED_ON 0x00
+#define CI_FAST_MODE 0x10
+#define CI_SLOW_MODE 0x00
+#define CI_WORST_CASE_MODE 0x40
+#define CI_TYPICAL_CASE_MODE 0x00
+
+/* Card Public Key Algorithms Types */
+#define CI_DSA_TYPE 0xA
+#define CI_KEA_TYPE 0x5
+#define CI_DSA_KEA_TYPE 0xF
+
+/* Fortezza Pin Types */
+#define CI_SSO_PIN 0x25
+#define CI_USER_PIN 0x2A
+
+/* Crypto Types */
+#define CI_ENCRYPT_TYPE 0
+#define CI_DECRYPT_TYPE 1
+#define CI_HASH_TYPE 2
+
+/* Save and Restore Types */
+#define CI_ENCRYPT_INT_TYPE 0x00 /* Internal Encryption */
+#define CI_ENCRYPT_EXT_TYPE 0x10 /* External Encryption */
+#define CI_DECRYPT_INT_TYPE 0x01 /* Internal Decryption */
+#define CI_DECRYPT_EXT_TYPE 0x11 /* External Decryption */
+#define CI_HASH_INT_TYPE 0x02 /* Internal Hash */
+#define CI_HASH_EXT_TYPE 0x12 /* External Hash */
+#define CI_TYPE_EXT_FLAG 0x10 /* Used to differentiate */
+
+/* Configuration types */
+#define CI_SET_SPEED_TYPE 1
+#define CI_SET_TIMING_TYPE 2
+
+/* Lock States */
+#define CI_SOCKET_UNLOCKED 0
+#define CI_HOLD_LOCK 1
+#define CI_SOCKET_LOCKED 2
+
+/* Fortezza Crypto Types Modes */
+#define CI_ECB64_MODE 0
+#define CI_CBC64_MODE 1
+#define CI_OFB64_MODE 2
+#define CI_CFB64_MODE 3
+#define CI_CFB32_MODE 4
+#define CI_CFB16_MODE 5
+#define CI_CFB8_MODE 6
+
+/* Card States */
+#define CI_POWER_UP 0
+#define CI_UNINITIALIZED 1
+#define CI_INITIALIZED 2
+#define CI_SSO_INITIALIZED 3
+#define CI_LAW_INITIALIZED 4
+#define CI_USER_INITIALIZED 5
+#define CI_STANDBY 6
+#define CI_READY 7
+#define CI_ZEROIZE 8
+#define CI_INTERNAL_FAILURE (-1)
+
+/* Flags for Firmware Update. */
+#if !defined( _K_AND_R_ )
+
+#define CI_NOT_LAST_BLOCK_FLAG 0x00000000UL
+#define CI_LAST_BLOCK_FLAG 0x80000000UL
+#define CI_DESTRUCTIVE_FLAG 0x000000FFUL
+#define CI_NONDESTRUCTIVE_FLAG 0x0000FF00UL
+
+#else
+
+#define CI_NOT_LAST_BLOCK_FLAG 0x00000000L
+#define CI_LAST_BLOCK_FLAG 0x80000000L
+#define CI_DESTRUCTIVE_FLAG 0x000000FFL
+#define CI_NONDESTRUCTIVE_FLAG 0x0000FF00L
+
+#endif /* _K_AND_R_ */
+
+/****************************************************************************
+ Fortezza Library Return Codes
+ ***************************************************************************/
+
+/* Card Responses */
+#define CI_OK 0
+#define CI_FAIL 1
+#define CI_CHECKWORD_FAIL 2
+#define CI_INV_TYPE 3
+#define CI_INV_MODE 4
+#define CI_INV_KEY_INDEX 5
+#define CI_INV_CERT_INDEX 6
+#define CI_INV_SIZE 7
+#define CI_INV_HEADER 8
+#define CI_INV_STATE 9
+#define CI_EXEC_FAIL 10
+#define CI_NO_KEY 11
+#define CI_NO_IV 12
+#define CI_NO_X 13
+
+#define CI_NO_SAVE 15
+#define CI_REG_IN_USE 16
+#define CI_INV_COMMAND 17
+#define CI_INV_POINTER 18
+#define CI_BAD_CLOCK 19
+#define CI_NO_DSA_PARMS 20
+
+/* Library Errors */
+#define CI_ERROR (-1)
+#define CI_LIB_NOT_INIT (-2)
+#define CI_CARD_NOT_READY (-3)
+#define CI_CARD_IN_USE (-4)
+#define CI_TIME_OUT (-5)
+#define CI_OUT_OF_MEMORY (-6)
+#define CI_NULL_PTR (-7)
+#define CI_BAD_SIZE (-8)
+#define CI_NO_DECRYPT (-9)
+#define CI_NO_ENCRYPT (-10)
+#define CI_NO_EXECUTE (-11)
+#define CI_BAD_PARAMETER (-12)
+#define CI_OUT_OF_RESOURCES (-13)
+
+#define CI_NO_CARD (-20)
+#define CI_NO_DRIVER (-21)
+#define CI_NO_CRDSRV (-22)
+#define CI_NO_SCTSRV (-23)
+
+#define CI_BAD_CARD (-30)
+#define CI_BAD_IOCTL (-31)
+#define CI_BAD_READ (-32)
+#define CI_BAD_SEEK (-33)
+#define CI_BAD_WRITE (-34)
+#define CI_BAD_FLUSH (-35)
+#define CI_BAD_IOSEEK (-36)
+#define CI_BAD_ADDR (-37)
+
+#define CI_INV_SOCKET_INDEX (-40)
+#define CI_SOCKET_IN_USE (-41)
+#define CI_NO_SOCKET (-42)
+#define CI_SOCKET_NOT_OPENED (-43)
+#define CI_BAD_TUPLES (-44)
+#define CI_NOT_A_CRYPTO_CARD (-45)
+
+#define CI_INVALID_FUNCTION (-50)
+#define CI_LIB_ALRDY_INIT (-51)
+#define CI_SRVR_ERROR (-52)
+#define MACI_SESSION_EXCEEDED (-53)
+
+
+/*****************************************************************************
+ Data Structures
+ ****************************************************************************/
+
+
+typedef unsigned char CI_CERTIFICATE[CI_CERT_SIZE];
+
+typedef unsigned char CI_CERT_FLAGS[CI_CERT_FLAGS_SIZE];
+
+typedef unsigned char CI_CERT_STR[CI_CERT_NAME_SIZE+4];
+
+typedef unsigned char CI_FAR *CI_DATA;
+
+typedef unsigned char CI_G[CI_G_SIZE];
+
+typedef unsigned char CI_HASHVALUE[CI_HASHVALUE_SIZE];
+
+typedef unsigned char CI_IV[CI_IV_SIZE];
+
+typedef unsigned char CI_KEY[CI_KEY_SIZE];
+
+typedef unsigned char CI_KS[CI_KS_SIZE];
+
+typedef unsigned char CI_P[CI_P_SIZE];
+
+typedef unsigned char CI_PASSWORD[CI_PASSWORD_SIZE + 4];
+
+typedef unsigned char CI_PIN[CI_PIN_SIZE + 4];
+
+typedef unsigned char CI_Q[CI_Q_SIZE];
+
+typedef unsigned char CI_RA[CI_RA_SIZE];
+
+typedef unsigned char CI_RB[CI_RB_SIZE];
+
+typedef unsigned char CI_RANDOM[CI_RANDOM_NO_SIZE];
+
+typedef unsigned char CI_RANDSEED[CI_RANDOM_SEED_SIZE];
+
+typedef unsigned char CI_REG_FLAGS[CI_REG_FLAGS_SIZE];
+
+typedef unsigned char CI_SIGNATURE[CI_SIGNATURE_SIZE];
+
+typedef unsigned char CI_SAVE_DATA[CI_SAVE_DATA_SIZE];
+
+typedef unsigned char CI_SERIAL_NUMBER[CI_SERIAL_NUMBER_SIZE];
+
+typedef unsigned int CI_STATE, CI_FAR *CI_STATE_PTR;
+
+typedef unsigned char CI_TIME[CI_TIME_SIZE];
+
+typedef unsigned char CI_TIMESTAMP[CI_TIMESTAMP_SIZE];
+
+typedef unsigned char CI_WRAPPED_X[CI_WRAPPED_X_SIZE];
+
+typedef unsigned char CI_Y[CI_Y_SIZE];
+
+typedef unsigned char CI_X[CI_X_SIZE];
+
+typedef struct {
+ int LibraryVersion; /* CI Library version */
+ int ManufacturerVersion; /* Card's hardware version */
+ char ManufacturerName[CI_NAME_SIZE+4]; /* Card manufacturer's name*/
+ char ProductName[CI_NAME_SIZE+4]; /* Card's product name */
+ char ProcessorType[CI_NAME_SIZE+4]; /* Card's processor type */
+ unsigned long UserRAMSize; /* Amount of User RAM in bytes */
+ unsigned long LargestBlockSize; /* Largest block of data to pass in */
+ int KeyRegisterCount; /* Number of key registers */
+ int CertificateCount; /* Maximum number of personalities (# certs-1) */
+ int CryptoCardFlag; /* A flag that if non-zero indicates that there is
+ a Crypto-Card in the socket. If this value is
+ zero then there is NOT a Crypto-Card in the
+ sockets. */
+ int ICDVersion; /* The ICD compliance level */
+ int ManufacturerSWVer; /* The Manufacturer's Software Version */
+ int DriverVersion; /* Driver Version */
+} CI_CONFIG, CI_FAR *CI_CONFIG_PTR;
+
+typedef struct {
+ int CertificateIndex; /* Index from 1 to CertificateCount */
+ CI_CERT_STR CertLabel; /* The certificate label */
+} CI_PERSON, CI_FAR *CI_PERSON_PTR;
+
+typedef struct {
+ int CurrentSocket; /* The currently selected socket */
+ int LockState; /* Lock status of the current socket */
+ CI_SERIAL_NUMBER SerialNumber; /* Serial number of the Crypto Engine chip */
+ CI_STATE CurrentState; /* State of The Card */
+ int DecryptionMode; /* Decryption mode of The Card */
+ int EncryptionMode; /* Encryption mode of The Card */
+ int CurrentPersonality; /* Index of the current personality */
+ int KeyRegisterCount; /* No. of Key Register on The Card */
+ CI_REG_FLAGS KeyRegisterFlags; /* Bit Masks indicating Key Register use */
+ int CertificateCount; /* No. of Certificates on The Card */
+ CI_CERT_FLAGS CertificateFlags; /* Bit Mask indicating certificate use */
+ unsigned char Flags[CI_STATUS_FLAGS_SIZE];
+ /* Flag[0] : bit 6 for Condition mode */
+ /* bit 4 for Clock mode */
+} CI_STATUS, CI_FAR *CI_STATUS_PTR;
+
+#endif
+
+/* Session constants */
+#ifndef HSESSION_DEFINE
+typedef unsigned int HSESSION;
+#define HSESSION_DEFINE
+#endif
+#define MAXSESSION 100
+
+/*****************************************************************************
+ Function Call Prototypes
+ ****************************************************************************/
+
+RETURN_TYPE
+MACI_ChangePIN PROTO_LIST( (
+ HSESSION hSession,
+ int PINType,
+ CI_PIN CI_FAR pOldPIN,
+ CI_PIN CI_FAR pNewPIN ) );
+
+RETURN_TYPE
+MACI_CheckPIN PROTO_LIST( (
+ HSESSION hSession,
+ int PINType,
+ CI_PIN CI_FAR pPIN ) );
+
+RETURN_TYPE
+MACI_Close PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int Flags,
+ int SocketIndex ) );
+
+RETURN_TYPE
+MACI_Decrypt PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int CipherSize,
+ CI_DATA pCipher,
+ CI_DATA pPlain ) );
+
+RETURN_TYPE
+MACI_DeleteCertificate PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex ) );
+
+RETURN_TYPE
+MACI_DeleteKey PROTO_LIST( (
+ HSESSION hSession,
+ int RegisterIndex ) );
+
+RETURN_TYPE
+MACI_Encrypt PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int PlainSize,
+ CI_DATA pPlain,
+ CI_DATA pCipher ) );
+
+RETURN_TYPE
+MACI_ExtractX PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex,
+ int AlgorithmType,
+ CI_PASSWORD CI_FAR pPassword,
+ unsigned int YSize,
+ CI_Y CI_FAR pY,
+ CI_WRAPPED_X CI_FAR pX,
+ CI_RA CI_FAR pRa,
+ unsigned int PandGSize,
+ unsigned int QSize,
+ CI_P CI_FAR pP,
+ CI_Q CI_FAR pQ,
+ CI_G CI_FAR pG ) );
+
+RETURN_TYPE
+MACI_FirmwareUpdate PROTO_LIST( (
+ HSESSION hSession,
+ unsigned long Flags,
+ long Cksum,
+ unsigned int CksumLength,
+ unsigned int DataSize,
+ CI_DATA pData ) );
+
+RETURN_TYPE
+MACI_GenerateIV PROTO_LIST( (
+ HSESSION hSession,
+ CI_IV CI_FAR pIV ) );
+
+RETURN_TYPE
+MACI_GenerateMEK PROTO_LIST( (
+ HSESSION hSession,
+ int RegisterIndex,
+ int Reserved ) );
+
+RETURN_TYPE
+MACI_GenerateRa PROTO_LIST( (
+ HSESSION hSession,
+ CI_RA CI_FAR pRa ) );
+
+RETURN_TYPE
+MACI_GenerateRandom PROTO_LIST( (
+ HSESSION hSession,
+ CI_RANDOM CI_FAR pRandom ) );
+
+RETURN_TYPE
+MACI_GenerateTEK PROTO_LIST( (
+ HSESSION hSession,
+ int Flags,
+ int RegisterIndex,
+ CI_RA CI_FAR pRa,
+ CI_RB CI_FAR pRb,
+ unsigned int YSize,
+ CI_Y CI_FAR pY ) );
+
+RETURN_TYPE
+MACI_GenerateX PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex,
+ int AlgorithmType,
+ unsigned int PandGSize,
+ unsigned int QSize,
+ CI_P CI_FAR pP,
+ CI_Q CI_FAR pQ,
+ CI_G CI_FAR pG,
+ unsigned int YSize,
+ CI_Y CI_FAR pY ) );
+
+RETURN_TYPE
+MACI_GetCertificate PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex,
+ CI_CERTIFICATE CI_FAR pCertificate ) );
+
+RETURN_TYPE
+MACI_GetConfiguration PROTO_LIST( (
+ HSESSION hSession,
+ CI_CONFIG_PTR pConfiguration ) );
+
+RETURN_TYPE
+MACI_GetHash PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int DataSize,
+ CI_DATA pData,
+ CI_HASHVALUE CI_FAR pHashValue ) );
+
+RETURN_TYPE
+MACI_GetPersonalityList PROTO_LIST( (
+ HSESSION hSession,
+ int EntryCount,
+ CI_PERSON CI_FAR pPersonalityList[] ) );
+
+RETURN_TYPE
+MACI_GetSessionID PROTO_LIST( (
+ HSESSION *hSession ) );
+
+RETURN_TYPE
+MACI_GetState PROTO_LIST( (
+ HSESSION hSession,
+ CI_STATE_PTR pState ) );
+
+RETURN_TYPE
+MACI_GetStatus PROTO_LIST( (
+ HSESSION hSession,
+ CI_STATUS_PTR pStatus ) );
+
+RETURN_TYPE
+MACI_GetTime PROTO_LIST( (
+ HSESSION hSession,
+ CI_TIME CI_FAR pTime ) );
+
+RETURN_TYPE
+MACI_Hash PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int DataSize,
+ CI_DATA pData ) );
+
+RETURN_TYPE
+MACI_Initialize PROTO_LIST( (
+ int CI_FAR *SocketCount ) );
+
+RETURN_TYPE
+MACI_InitializeHash PROTO_LIST( (
+ HSESSION hSession ) );
+
+RETURN_TYPE
+MACI_InstallX PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex,
+ int AlgorithmType,
+ CI_PASSWORD CI_FAR pPassword,
+ unsigned int YSize,
+ CI_Y CI_FAR pY,
+ CI_WRAPPED_X CI_FAR pWrappedX,
+ CI_RA CI_FAR pRa,
+ unsigned int PandGSize,
+ unsigned int QSize,
+ CI_P CI_FAR pP,
+ CI_Q CI_FAR pQ,
+ CI_G CI_FAR pG ) );
+
+RETURN_TYPE
+MACI_LoadCertificate PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex,
+ CI_CERT_STR CI_FAR pCertLabel,
+ CI_CERTIFICATE CI_FAR pCertificate,
+ long Reserved ) );
+
+RETURN_TYPE
+MACI_LoadDSAParameters PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int PandGSize,
+ unsigned int QSize,
+ CI_P CI_FAR pP,
+ CI_Q CI_FAR pQ,
+ CI_G CI_FAR pG ) );
+
+RETURN_TYPE
+MACI_LoadInitValues PROTO_LIST( (
+ HSESSION hSession,
+ CI_RANDSEED CI_FAR pRandSeed,
+ CI_KS CI_FAR pKs ) );
+
+RETURN_TYPE
+MACI_LoadIV PROTO_LIST( (
+ HSESSION hSession,
+ CI_IV CI_FAR pIV ) );
+
+RETURN_TYPE
+MACI_LoadX PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex,
+ int AlgorithmType,
+ unsigned int PandGSize,
+ unsigned int QSize,
+ CI_P CI_FAR pP,
+ CI_Q CI_FAR pQ,
+ CI_G CI_FAR pG,
+ CI_X CI_FAR pX,
+ unsigned int YSize,
+ CI_Y CI_FAR pY ) );
+
+RETURN_TYPE
+MACI_Lock PROTO_LIST( (
+ HSESSION hSession,
+ int Flags ) );
+
+RETURN_TYPE
+MACI_Open PROTO_LIST( (
+ HSESSION hSession,
+ unsigned int Flags,
+ int SocketIndex ) );
+
+RETURN_TYPE
+MACI_RelayX PROTO_LIST( (
+ HSESSION hSession,
+ CI_PASSWORD CI_FAR pOldPassword,
+ unsigned int OldYSize,
+ CI_Y CI_FAR pOldY,
+ CI_RA CI_FAR pOldRa,
+ CI_WRAPPED_X CI_FAR pOldWrappedX,
+ CI_PASSWORD CI_FAR pNewPassword,
+ unsigned int NewYSize,
+ CI_Y CI_FAR pNewY,
+ CI_RA CI_FAR pNewRa,
+ CI_WRAPPED_X CI_FAR pNewWrappedX ) );
+
+RETURN_TYPE
+MACI_Reset PROTO_LIST( (
+ HSESSION hSession ) );
+
+RETURN_TYPE
+MACI_Restore PROTO_LIST( (
+ HSESSION hSession,
+ int CryptoType,
+ CI_SAVE_DATA CI_FAR pData ) );
+
+RETURN_TYPE
+MACI_Save PROTO_LIST( (
+ HSESSION hSession,
+ int CryptoType,
+ CI_SAVE_DATA CI_FAR pData ) );
+
+RETURN_TYPE
+MACI_Select PROTO_LIST( (
+ HSESSION hSession,
+ int SocketIndex ) );
+
+RETURN_TYPE
+MACI_SetConfiguration PROTO_LIST( (
+ HSESSION hSession,
+ int Type,
+ unsigned int DataSize,
+ CI_DATA pData ) );
+
+RETURN_TYPE
+MACI_SetKey PROTO_LIST( (
+ HSESSION hSession,
+ int RegisterIndex ) );
+
+RETURN_TYPE
+MACI_SetMode PROTO_LIST( (
+ HSESSION hSession,
+ int CryptoType,
+ int CryptoMode ) );
+
+RETURN_TYPE
+MACI_SetPersonality PROTO_LIST( (
+ HSESSION hSession,
+ int CertificateIndex ) );
+
+RETURN_TYPE
+MACI_SetTime PROTO_LIST( (
+ HSESSION hSession,
+ CI_TIME CI_FAR pTime ) );
+
+RETURN_TYPE
+MACI_Sign PROTO_LIST( (
+ HSESSION hSession,
+ CI_HASHVALUE CI_FAR pHashValue,
+ CI_SIGNATURE CI_FAR pSignature ) );
+
+RETURN_TYPE
+MACI_Terminate PROTO_LIST( (
+ HSESSION hSession ) );
+
+RETURN_TYPE
+MACI_TimeStamp PROTO_LIST( (
+ HSESSION hSession,
+ CI_HASHVALUE CI_FAR pHashValue,
+ CI_SIGNATURE CI_FAR pSignature,
+ CI_TIMESTAMP CI_FAR pTimeStamp ) );
+
+RETURN_TYPE
+MACI_Unlock PROTO_LIST( (
+ HSESSION hSession) );
+
+RETURN_TYPE
+MACI_UnwrapKey PROTO_LIST( (
+ HSESSION hSession,
+ int UnwrapIndex,
+ int KeyIndex,
+ CI_KEY CI_FAR pKey ) );
+
+RETURN_TYPE
+MACI_VerifySignature PROTO_LIST( (
+ HSESSION hSession,
+ CI_HASHVALUE CI_FAR pHashValue,
+ unsigned int YSize,
+ CI_Y CI_FAR pY,
+ CI_SIGNATURE CI_FAR pSignature ) );
+
+RETURN_TYPE
+MACI_VerifyTimeStamp PROTO_LIST( (
+ HSESSION hSession,
+ CI_HASHVALUE CI_FAR pHashValue,
+ CI_SIGNATURE CI_FAR pSignature,
+ CI_TIMESTAMP CI_FAR pTimeStamp ) );
+
+RETURN_TYPE
+MACI_WrapKey PROTO_LIST( (
+ HSESSION hSession,
+ int WrapIndex,
+ int KeyIndex,
+ CI_KEY CI_FAR pKey ) );
+
+RETURN_TYPE
+MACI_Zeroize PROTO_LIST( (
+ HSESSION hSession ) );
+
+#if __cplusplus__ || __cplusplus
+}
+#endif /* C++ */
+
+#endif /* CRYPTINT_H */
+