1 /*############################################################################ 2 # Copyright 2017 Intel Corporation 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 ############################################################################*/ 16 /// Member creation parameters for software only implementation. 17 /*! 18 * \file 19 */ 20 #ifndef EPID_MEMBER_SOFTWARE_MEMBER_H_ 21 #define EPID_MEMBER_SOFTWARE_MEMBER_H_ 22 23 #include "epid/common/bitsupplier.h" 24 #include "epid/common/types.h" 25 26 /*! 27 \addtogroup EpidMemberModule member 28 @{ 29 */ 30 31 /// Software only specific member parameters 32 /*! 33 You need to use a cryptographically secure random 34 number generator to create a member context using 35 ::EpidMemberGetSize and ::EpidMemberInit. The ::BitSupplier is provided 36 as a function prototype for your own implementation 37 of the random number generator. 38 */ 39 typedef struct MemberParams { 40 BitSupplier rnd_func; ///< Random number generator. 41 void* rnd_param; ///< User data that will be passed to the user_data 42 /// parameter of the random number generator. 43 FpElemStr const* f; ///< Secret part of the private key. If NULL a random 44 /// value will be generated using rnd_func. 45 } MemberParams; 46 /*! @} */ 47 48 #endif // EPID_MEMBER_SOFTWARE_MEMBER_H_ 49