34 lines
950 B
C++
34 lines
950 B
C++
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nss.h"
|
|
#include "secoid.h"
|
|
|
|
#include "nss_scoped_ptrs.h"
|
|
|
|
namespace nss_test {
|
|
|
|
class ParamHolder;
|
|
|
|
class Pkcs11KeyPairGenerator {
|
|
public:
|
|
Pkcs11KeyPairGenerator(CK_MECHANISM_TYPE mech, SECOidTag curve_oid)
|
|
: mech_(mech), curve_(curve_oid) {}
|
|
Pkcs11KeyPairGenerator(CK_MECHANISM_TYPE mech)
|
|
: Pkcs11KeyPairGenerator(mech, SEC_OID_UNKNOWN) {}
|
|
|
|
CK_MECHANISM_TYPE mechanism() const { return mech_; }
|
|
SECOidTag curve() const { return curve_; }
|
|
|
|
void GenerateKey(ScopedSECKEYPrivateKey* priv_key,
|
|
ScopedSECKEYPublicKey* pub_key, bool sensitive = true) const;
|
|
|
|
private:
|
|
std::unique_ptr<ParamHolder> MakeParams() const;
|
|
|
|
CK_MECHANISM_TYPE mech_;
|
|
SECOidTag curve_;
|
|
};
|
|
|
|
} // namespace nss_test
|