123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*############################################################################
- # Copyright 2016-2017 Intel Corporation
- #
- # Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- ############################################################################*/
- #ifndef EPID_COMMON_BITSUPPLIER_H_
- #define EPID_COMMON_BITSUPPLIER_H_
- /*!
- * \file
- * \brief Random data supplier interface.
- */
- #if defined(_WIN32) || defined(_WIN64)
- #define __STDCALL __stdcall
- #else
- #define __STDCALL
- #endif
- /// Generates random data.
- /*!
- The SDK provides the ::BitSupplier as a function
- prototype so that you will know the requirements for your
- own implementation of a random number generator.
- You need to pass a pointer to your
- implementation of the random number generator into
- methods that require it.
- For an example of how a BitSupplier is created, see
- the `signmsg` example.
- \param[out] rand_data destination buffer for random data
- generated by BitSupplier. The buffer will receive
- `num_bits` of random data.
- \param[in] num_bits specifies the size of the random
- data, in bits, to be generated.
- \param[in] user_data user data that will be passed to the
- random number generator. The usage of this data is specific
- to the implementation of the BitSupplier. For example, this
- could be used to pass a pointer to a data structure
- that maintains state across calls to your BitSupplier.
- \returns zero on success and non-zero value on error.
- \ingroup EpidCommon
- */
- typedef int(__STDCALL* BitSupplier)(unsigned int* rand_data, int num_bits,
- void* user_data);
- #endif // EPID_COMMON_BITSUPPLIER_H_
|