/*
 * Copyright 2015 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef __TPM2_RSAKEYSIEVE_FP_H
#define __TPM2_RSAKEYSIEVE_FP_H

LIB_EXPORT CRYPT_RESULT _cpri__GenerateKeyRSA(
    TPM2B *n,              // OUT: The public modulus
    TPM2B *p,              // OUT: One of the prime factors of n
    UINT16 keySizeInBits,  // IN: Size of the public modulus in bits
    UINT32 e,              // IN: The public exponent
    TPM_ALG_ID
        hashAlg,  // IN: hash algorithm to use in the key generation process
    TPM2B *seed,  // IN: the seed to use
    const char *label,  // IN: A label for the generation process.
    TPM2B *extra,       // IN: Party 1 data for the KDF
    UINT32 *counter     // IN/OUT: Counter value to allow KDF iteration to be
                        // propagated across multiple routines
#ifdef RSA_DEBUG
    ,
    UINT16 primes,    // IN: number of primes to test
    UINT16 fieldSize  // IN: the field size to use
#endif
    );

#endif  // __TPM2_RSAKEYSIEVE_FP_H