1 2/* 3 * Licensed Materials - Property of IBM 4 * 5 * trousers - An open source TCG Software Stack 6 * 7 * (C) Copyright International Business Machines Corp. 2006 8 * 9 */ 10 11#ifndef DAA_PARAMETER_H_ 12#define DAA_PARAMETER_H_ 13 14// for message digest 15//#include <openssl/evp.h> 16#include "trousers/tss.h" 17//#include "spi_internal_types.h" 18#include "spi_utils.h" 19 20#define DAA_PARAM_TSS_VERSION_LENGTH (4) 21static const BYTE DAA_PARAM_TSS_VERSION[] = { 1, 2, 0, 0 }; 22 23#define DAA_PARAM_DEFAULT_CRYPTO_PROVIDER_NAME "BC" 24 25// Name of default hash function 26#define DAA_PARAM_MESSAGE_DIGEST_ALGORITHM "SHA1" 27 28// Name of hash function used independently in TSS 29#define DAA_PARAM_MESSAGE_DIGEST_ALGORITHM_TSS "SHA1" 30 31// l_n (bits) 32#define DAA_PARAM_SIZE_RSA_MODULUS (2048) 33 34// l_f (bits) 35#define DAA_PARAM_SIZE_F_I (104) 36 37// l_q (2 * SIZE_F_I) 38#define DAA_PARAM_SIZE_RHO (208) 39 40// l_e 41#define DAA_PARAM_SIZE_EXPONENT_CERTIFICATE (368) 42 43// lPrime_e 44#define DAA_PARAM_SIZE_INTERVAL_EXPONENT_CERTIFICATE (120) 45 46// l_zero 47#define DAA_PARAM_SAFETY_MARGIN (80) 48 49// Byte length of TPM message digest (sha-1) 50#define DAA_PARAM_LENGTH_MESSAGE_DIGEST (20) 51 52// Byte length of TSS message digest (sha-256) 53#define DAA_PARAM_LENGTH_MESSAGE_DIGEST_TSS (32) 54 55// l_H depends on the message digest algo 56#define DAA_PARAM_SIZE_MESSAGE_DIGEST (160) 57// 8 * LENGTH_MESSAGE_DIGEST; 58 59// l_GAMMA 60#define DAA_PARAM_SIZE_MODULUS_GAMMA (1632) 61 62#define DAA_PARAM_SIZE_SPLIT_EXPONENT (1024) 63 64// TPM asym key size (bits) 65#define DAA_PARAM_KEY_SIZE (2048) 66 67// Default RSA public key exponent (Fermat 4) 68#define DAA_PARAM_LENGTH_MFG1_ANONYMITY_REVOCATION (25) 69// (SIZE_RHO-1)/8; 70 71#define DAA_PARAM_LENGTH_MFG1_GAMMA (214) 72// (SIZE_MODULUS_GAMMA + SIZE_SAFETY_MARGIN)/8; 73 74#define DAA_PARAM_SIZE_RND_VALUE_CERTIFICATE (2536) 75 76// (bits) 77#define DAA_PARAM_SIZE_RANDOMIZED_ATTRIBUTES (DAA_PARAM_SIZE_F_I+DAA_PARAM_SAFETY_MARGIN+DAA_PARAM_SIZE_MESSAGE_DIGEST) 78 79#define TSS_FLAG_DAA_SIGN_IDENTITY_KEY 0 80#define TSS_FLAG_DAA_SIGN_MESSAGE_HASH 1 81 82 83extern EVP_MD *DAA_PARAM_get_message_digest(void); 84 85extern char *err_string(TSS_RESULT r); 86 87#endif /*DAA_PARAMETER_H_*/ 88