xref: /netbsd-src/crypto/external/cpl/trousers/dist/src/include/daa/anonymity_revocation.h (revision 1023804e3833a0bd94414f2545512128f6502c74)
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 ANONYMITY_REVOCATION_H_
12 #define ANONYMITY_REVOCATION_H_
13 
14 #include "bi.h"
15 #include "daa_structs.h"
16 
17 /**
18  * Cramer Shoup public key (CSPublicKey.java)
19  */
20 typedef struct tdCS_PUBLIC_KEY {
21 	bi_ptr eta;
22 	bi_ptr lambda1;
23 	bi_ptr lambda2;
24 	bi_ptr lambda3;
25 } CS_PUBLIC_KEY;
26 
27 typedef struct tdCS_ENCRYPTION_RESULT {
28 	bi_ptr c1;
29 	bi_ptr c2;
30 	bi_ptr c3;
31 	bi_ptr c4;
32 }  CS_ENCRYPTION_RESULT;
33 
34 CS_ENCRYPTION_RESULT *create_CS_ENCRYPTION_RESULT( bi_ptr c1, bi_ptr c2, bi_ptr c3, bi_ptr c4);
35 
36 /*
37  * Cramer-Shoup Encryption Result including randomness.
38  *
39  * from com.ibm.zurich.tcg.daa.anonymityrevocationCSEncryptionResultRandomness
40 */
41 typedef struct tdCS_ENCRYPTION_RESULT_RANDOMNESS {
42 	bi_ptr randomness;
43 	CS_ENCRYPTION_RESULT *result;
44 } CS_ENCRYPTION_RESULT_RANDOMNESS;
45 
46 /*
47  * Cramer-Shoup EncryptionProof
48  *  from com.ibm.zurich.tcg.daa.anonymityrevocation.CSEncryptionProof
49  */
50 CS_ENCRYPTION_RESULT_RANDOMNESS *compute_ecryption_proof(
51 	const bi_ptr msg,
52 	const bi_ptr delta1,
53 	const bi_ptr delta2,
54 	const bi_ptr delta3,
55 	const bi_ptr randomness,
56 	const CS_PUBLIC_KEY *key,
57 	const struct tdTSS_DAA_PK_internal *daa_key,
58 	const BYTE *condition,
59 	const int conditionLength,
60 	const EVP_MD *messageDigest);
61 
62 #endif /*ANONYMITY_REVOCATION_H_*/
63