Chromium Code Reviews| Index: crypto/nss_key_util.h |
| diff --git a/crypto/nss_key_util.h b/crypto/nss_key_util.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1ae9f4ad7d7f02d4cb0fa36a291f35aba05e3370 |
| --- /dev/null |
| +++ b/crypto/nss_key_util.h |
| @@ -0,0 +1,58 @@ |
| +// Copyright 2015 The Chromium 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 CRYPTO_NSS_KEY_UTIL_H_ |
| +#define CRYPTO_NSS_KEY_UTIL_H_ |
| + |
| +#include <stdint.h> |
| + |
| +#include <vector> |
| + |
| +#include "build/build_config.h" |
| +#include "crypto/crypto_export.h" |
| +#include "crypto/scoped_nss_types.h" |
| + |
| +typedef struct PK11SlotInfoStr PK11SlotInfo; |
| + |
| +namespace crypto { |
| + |
| +// Generates a new RSA keypair of size |num_bits| in |slot|. Returns true on |
| +// success and false on failure. If |permanent| is true, the resulting key is |
| +// permanent and is not exportable in plaintext form. |
| +CRYPTO_EXPORT bool GenerateRSAKeyPairNSS( |
| + PK11SlotInfo* slot, |
| + uint16_t num_bits, |
| + bool permanent, |
| + ScopedSECKEYPublicKey* out_public_key, |
| + ScopedSECKEYPrivateKey* out_private_key); |
| + |
| +// Imports a private key from |input| into |slot|. |input| is interpreted as a |
| +// DER-encoded PrivateKeyInfo block from PKCS #8. Returns null on error. If |
| +// |permanent| is true, the resulting key is permanent and is not exportable in |
| +// plaintext form. |
| +CRYPTO_EXPORT ScopedSECKEYPrivateKey |
| +ImportNSSKeyFromPrivateKeyInfo(PK11SlotInfo* slot, |
| + const std::vector<uint8_t>& input, |
| + bool permanent); |
| + |
| +#if defined(USE_NSS_CERTS) |
| + |
| +// Decodes |input| as a DER-encoded X.509 SubjectPublicKeyInfo and searches for |
| +// the private key half in the key database. Returns the private key on success |
| +// or null on error. |
|
Ryan Sleevi
2015/04/27 19:11:27
s/null/nullptr/ (or NULL)
davidben
2015/04/27 19:53:44
Done.
|
| +CRYPTO_EXPORT ScopedSECKEYPrivateKey |
| +FindNSSKeyFromPublicKeyInfo(const std::vector<uint8_t>& input); |
| + |
| +// Decodes |input| as a DER-encoded X.509 SubjectPublicKeyInfo and searches for |
| +// the private key half in the slot specified by |slot|. Returns the private key |
| +// on success or null on error. |
|
Ryan Sleevi
2015/04/27 19:11:27
ditto
davidben
2015/04/27 19:53:44
Done.
|
| +CRYPTO_EXPORT ScopedSECKEYPrivateKey |
| +FindNSSKeyFromPublicKeyInfoInSlot(const std::vector<uint8_t>& input, |
| + PK11SlotInfo* slot); |
| + |
| +#endif // defined(USE_NSS_CERTS) |
| + |
| +} // namespace crypto |
| + |
| +#endif // CRYPTO_NSS_KEY_UTIL_H_ |