Skip to content

Commit 2885742

Browse files
kkasperczyk-nopull[bot]
authored andcommitted
[crypto] Added target type to the P256KeyPair initialize method (#23771)
Some of the crypto PAL implementations, like PSA require information about the target usage algoritm for the key at the moment of its generation. Current P256KeyPair API doesn't allow to pass such information Summary of changes: * Added target enum type to P256KeyPair Initialize() method * Aligned all places that Initialize() is invoked to pass ECDSA or ECDH (basically only for the CASE) type. * In CryptoPALPSA implementation removed method converting ECDSA to ECDH key and added generating ECDH or ECDSA key in the Initialize() method based on passed target.
1 parent dfbda4d commit 2885742

33 files changed

+92
-103
lines changed

examples/chip-tool/commands/common/CHIPCommand.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ CHIP_ERROR CHIPCommand::InitializeCommissioner(const CommissionerIdentity & iden
421421
chip::MutableByteSpan icacSpan(icac.Get(), chip::Controller::kMaxCHIPDERCertLength);
422422
chip::MutableByteSpan rcacSpan(rcac.Get(), chip::Controller::kMaxCHIPDERCertLength);
423423

424-
ReturnLogErrorOnFailure(ephemeralKey.Initialize());
424+
ReturnLogErrorOnFailure(ephemeralKey.Initialize(chip::Crypto::ECPKeyTarget::ECDSA));
425425

426426
ReturnLogErrorOnFailure(mCredIssuerCmds->GenerateControllerNOCChain(identity.mLocalNodeId, fabricId,
427427
mCommissionerStorage.GetCommissionerCATs(),

examples/darwin-framework-tool/commands/common/CHIPToolKeypair.mm

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ - (instancetype)init
3131

3232
- (BOOL)initialize
3333
{
34-
return _mKeyPair.Initialize() == CHIP_NO_ERROR;
34+
return _mKeyPair.Initialize(chip::Crypto::ECPKeyTarget::ECDSA) == CHIP_NO_ERROR;
3535
}
3636

3737
- (NSData *)signMessageECDSA_RAW:(NSData *)message

examples/platform/linux/CommissionerMain.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ CHIP_ERROR InitCommissioner(uint16_t commissionerPort, uint16_t udcListenPort, F
171171
MutableByteSpan rcacSpan(rcac.Get(), Controller::kMaxCHIPDERCertLength);
172172

173173
Crypto::P256Keypair ephemeralKey;
174-
ReturnErrorOnFailure(ephemeralKey.Initialize());
174+
ReturnErrorOnFailure(ephemeralKey.Initialize(Crypto::ECPKeyTarget::ECDSA));
175175

176176
ReturnErrorOnFailure(gOpCredsIssuer.GenerateNOCChainAfterValidation(gLocalId, /* fabricId = */ 1, chip::kUndefinedCATs,
177177
ephemeralKey.Pubkey(), rcacSpan, icacSpan, nocSpan));

examples/platform/nxp/se05x/DeviceAttestationSe05xCredsExample.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ CHIP_ERROR ExampleSe05xDACProvider::SignWithDeviceAttestationKey(const ByteSpan
145145

146146
keypair.SetKeyId(DEV_ATTESTATION_KEY_SE05X_ID);
147147
keypair.provisioned_key = true;
148-
keypair.Initialize();
148+
keypair.Initialize(Crypto::ECPKeyTarget::ECDSA);
149149

150150
ReturnErrorOnFailure(keypair.ECDSA_sign_msg(message_to_sign.data(), message_to_sign.size(), signature));
151151

src/controller/ExampleOperationalCredentialsIssuer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::Initialize(PersistentStorageDele
182182
{
183183
ChipLogProgress(Controller, "Couldn't get %s from storage: %s", kOperationalCredentialsIssuerKeypairStorage, ErrorStr(err));
184184
// Storage doesn't have an existing keypair. Let's create one and add it to the storage.
185-
ReturnErrorOnFailure(mIssuer.Initialize());
185+
ReturnErrorOnFailure(mIssuer.Initialize(Crypto::ECPKeyTarget::ECDSA));
186186
ReturnErrorOnFailure(mIssuer.Serialize(serializedKey));
187187

188188
PERSISTENT_KEY_OP(mIndex, kOperationalCredentialsIssuerKeypairStorage, key,
@@ -209,7 +209,7 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::Initialize(PersistentStorageDele
209209
ChipLogProgress(Controller, "Couldn't get %s from storage: %s", kOperationalCredentialsIntermediateIssuerKeypairStorage,
210210
ErrorStr(err));
211211
// Storage doesn't have an existing keypair. Let's create one and add it to the storage.
212-
ReturnErrorOnFailure(mIntermediateIssuer.Initialize());
212+
ReturnErrorOnFailure(mIntermediateIssuer.Initialize(Crypto::ECPKeyTarget::ECDSA));
213213
ReturnErrorOnFailure(mIntermediateIssuer.Serialize(serializedKey));
214214

215215
PERSISTENT_KEY_OP(mIndex, kOperationalCredentialsIntermediateIssuerKeypairStorage, key,

src/controller/java/AndroidDeviceControllerWrapper.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ AndroidDeviceControllerWrapper * AndroidDeviceControllerWrapper::AllocateNew(
235235
{
236236
CHIPP256KeypairBridge * nativeKeypairBridge = wrapper->GetP256KeypairBridge();
237237
nativeKeypairBridge->SetDelegate(keypairDelegate);
238-
*errInfoOnFailure = nativeKeypairBridge->Initialize();
238+
*errInfoOnFailure = nativeKeypairBridge->Initialize(Crypto::ECPKeyTarget::ECDSA);
239239
if (*errInfoOnFailure != CHIP_NO_ERROR)
240240
{
241241
return nullptr;
@@ -272,7 +272,7 @@ AndroidDeviceControllerWrapper * AndroidDeviceControllerWrapper::AllocateNew(
272272
ChipLogProgress(Controller,
273273
"No existing credentials provided: generating ephemeral local NOC chain with OperationalCredentialsIssuer");
274274

275-
*errInfoOnFailure = ephemeralKey.Initialize();
275+
*errInfoOnFailure = ephemeralKey.Initialize(Crypto::ECPKeyTarget::ECDSA);
276276
if (*errInfoOnFailure != CHIP_NO_ERROR)
277277
{
278278
return nullptr;

src/controller/java/AndroidOperationalCredentialsIssuer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ CHIP_ERROR AndroidOperationalCredentialsIssuer::Initialize(PersistentStorageDele
6868
if (storage.SyncGetKeyValue(kOperationalCredentialsIssuerKeypairStorage, &serializedKey, keySize) != CHIP_NO_ERROR)
6969
{
7070
// Storage doesn't have an existing keypair. Let's create one and add it to the storage.
71-
ReturnErrorOnFailure(mIssuer.Initialize());
71+
ReturnErrorOnFailure(mIssuer.Initialize(Crypto::ECPKeyTarget::ECDSA));
7272
ReturnErrorOnFailure(mIssuer.Serialize(serializedKey));
7373

7474
keySize = static_cast<uint16_t>(sizeof(serializedKey));

src/controller/python/OpCredsBinding.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ PyChipError pychip_OpCreds_AllocateController(OpCredsContext * context, chip::Co
343343
SetDeviceAttestationVerifier(GetDefaultDACVerifier(testingRootStore));
344344

345345
chip::Crypto::P256Keypair ephemeralKey;
346-
CHIP_ERROR err = ephemeralKey.Initialize();
346+
CHIP_ERROR err = ephemeralKey.Initialize(chip::Crypto::ECPKeyTarget::ECDSA);
347347
VerifyOrReturnError(err == CHIP_NO_ERROR, ToPyChipError(err));
348348

349349
chip::Platform::ScopedMemoryBuffer<uint8_t> noc;

src/controller/python/chip/internal/CommissionerImpl.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ extern "C" chip::Controller::DeviceCommissioner * pychip_internal_Commissioner_N
145145

146146
commissionerParams.pairingDelegate = &gPairingDelegate;
147147

148-
err = ephemeralKey.Initialize();
148+
err = ephemeralKey.Initialize(chip::Crypto::ECPKeyTarget::ECDSA);
149149
SuccessOrExit(err);
150150

151151
err = gOperationalCredentialsIssuer.Initialize(gServerStorage);

src/credentials/TestOnlyLocalCertificateAuthority.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class TestOnlyLocalCertificateAuthority
7474
}
7575
else
7676
{
77-
mRootKeypair->Initialize();
77+
mRootKeypair->Initialize(Crypto::ECPKeyTarget::ECDSA);
7878
}
7979
mCurrentStatus = GenerateRootCert(*mRootKeypair.get());
8080
SuccessOrExit(mCurrentStatus);
@@ -155,7 +155,7 @@ class TestOnlyLocalCertificateAuthority
155155
ReturnErrorOnFailure(ExtractSubjectDNFromChipCert(ByteSpan{ mLastRcac.Get(), mLastRcac.AllocatedSize() }, rcac_dn));
156156

157157
Crypto::P256Keypair icacKeypair;
158-
ReturnErrorOnFailure(icacKeypair.Initialize()); // Maybe we won't use it, but it's OK
158+
ReturnErrorOnFailure(icacKeypair.Initialize(Crypto::ECPKeyTarget::ECDSA)); // Maybe we won't use it, but it's OK
159159

160160
Crypto::P256Keypair * nocIssuerKeypair = mRootKeypair.get();
161161
ChipDN * issuer_dn = &rcac_dn;

src/credentials/tests/TestCertificationDeclaration.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ static void TestCD_CMSSignAndVerify(nlTestSuite * inSuite, void * inContext)
355355

356356
// Test with random key
357357
P256Keypair keypair;
358-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
358+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
359359
NL_TEST_ASSERT(inSuite, CMS_Sign(cdContentIn, signerKeyId, keypair, signedMessage) == CHIP_NO_ERROR);
360360
NL_TEST_ASSERT(inSuite, CMS_Verify(signedMessage, keypair.Pubkey(), cdContentOut) == CHIP_NO_ERROR);
361361
NL_TEST_ASSERT(inSuite, cdContentIn.data_equal(cdContentOut));

src/credentials/tests/TestChipCert.cpp

+13-13
Original file line numberDiff line numberDiff line change
@@ -1234,7 +1234,7 @@ static void TestChipCert_GenerateRootCert(nlTestSuite * inSuite, void * inContex
12341234
{
12351235
// Generate a new keypair for cert signing
12361236
P256Keypair keypair;
1237-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1237+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
12381238

12391239
uint8_t signed_cert[kMaxDERCertLength];
12401240

@@ -1289,7 +1289,7 @@ static void TestChipCert_GenerateRootFabCert(nlTestSuite * inSuite, void * inCon
12891289
{
12901290
// Generate a new keypair for cert signing
12911291
P256Keypair keypair;
1292-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1292+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
12931293

12941294
uint8_t signed_cert[kMaxDERCertLength];
12951295

@@ -1316,7 +1316,7 @@ static void TestChipCert_GenerateICACert(nlTestSuite * inSuite, void * inContext
13161316
{
13171317
// Generate a new keypair for cert signing
13181318
P256Keypair keypair;
1319-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1319+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
13201320

13211321
uint8_t signed_cert[kMaxDERCertLength];
13221322

@@ -1332,7 +1332,7 @@ static void TestChipCert_GenerateICACert(nlTestSuite * inSuite, void * inContext
13321332

13331333
X509CertRequestParams ica_params = { 1234, 631161876, 729942000, ica_dn, issuer_dn };
13341334
P256Keypair ica_keypair;
1335-
NL_TEST_ASSERT(inSuite, ica_keypair.Initialize() == CHIP_NO_ERROR);
1335+
NL_TEST_ASSERT(inSuite, ica_keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
13361336

13371337
MutableByteSpan signed_cert_span(signed_cert);
13381338
NL_TEST_ASSERT(inSuite, NewICAX509Cert(ica_params, ica_keypair.Pubkey(), keypair, signed_cert_span) == CHIP_NO_ERROR);
@@ -1370,7 +1370,7 @@ static void TestChipCert_GenerateNOCRoot(nlTestSuite * inSuite, void * inContext
13701370
{
13711371
// Generate a new keypair for cert signing
13721372
P256Keypair keypair;
1373-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1373+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
13741374

13751375
uint8_t signed_cert[kMaxDERCertLength];
13761376

@@ -1387,7 +1387,7 @@ static void TestChipCert_GenerateNOCRoot(nlTestSuite * inSuite, void * inContext
13871387

13881388
X509CertRequestParams noc_params = { 123456, 631161876, 729942000, noc_dn, issuer_dn };
13891389
P256Keypair noc_keypair;
1390-
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize() == CHIP_NO_ERROR);
1390+
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
13911391

13921392
MutableByteSpan signed_cert_span(signed_cert, sizeof(signed_cert));
13931393
NL_TEST_ASSERT(inSuite,
@@ -1441,7 +1441,7 @@ static void TestChipCert_GenerateNOCICA(nlTestSuite * inSuite, void * inContext)
14411441
{
14421442
// Generate a new keypair for cert signing
14431443
P256Keypair keypair;
1444-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1444+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
14451445

14461446
uint8_t signed_cert[kMaxDERCertLength];
14471447

@@ -1471,7 +1471,7 @@ static void TestChipCert_GenerateNOCICA(nlTestSuite * inSuite, void * inContext)
14711471

14721472
X509CertRequestParams noc_params = { 12348765, 631161876, 729942000, noc_dn, ica_dn };
14731473
P256Keypair noc_keypair;
1474-
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize() == CHIP_NO_ERROR);
1474+
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
14751475

14761476
MutableByteSpan signed_cert_span(signed_cert);
14771477
NL_TEST_ASSERT(inSuite,
@@ -1489,7 +1489,7 @@ static void TestChipCert_VerifyGeneratedCerts(nlTestSuite * inSuite, void * inCo
14891489
{
14901490
// Generate a new keypair for cert signing
14911491
P256Keypair keypair;
1492-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1492+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
14931493

14941494
static uint8_t root_cert[kMaxDERCertLength];
14951495

@@ -1509,7 +1509,7 @@ static void TestChipCert_VerifyGeneratedCerts(nlTestSuite * inSuite, void * inCo
15091509

15101510
X509CertRequestParams ica_params = { 12345, 631161876, 729942000, ica_dn, root_dn };
15111511
P256Keypair ica_keypair;
1512-
NL_TEST_ASSERT(inSuite, ica_keypair.Initialize() == CHIP_NO_ERROR);
1512+
NL_TEST_ASSERT(inSuite, ica_keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
15131513

15141514
MutableByteSpan ica_cert_span(ica_cert);
15151515
NL_TEST_ASSERT(inSuite, NewICAX509Cert(ica_params, ica_keypair.Pubkey(), keypair, ica_cert_span) == CHIP_NO_ERROR);
@@ -1522,7 +1522,7 @@ static void TestChipCert_VerifyGeneratedCerts(nlTestSuite * inSuite, void * inCo
15221522

15231523
X509CertRequestParams noc_params = { 123456, 631161876, 729942000, noc_dn, ica_dn };
15241524
P256Keypair noc_keypair;
1525-
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize() == CHIP_NO_ERROR);
1525+
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
15261526

15271527
MutableByteSpan noc_cert_span(noc_cert, sizeof(noc_cert));
15281528
NL_TEST_ASSERT(inSuite,
@@ -1567,7 +1567,7 @@ static void TestChipCert_VerifyGeneratedCertsNoICA(nlTestSuite * inSuite, void *
15671567
{
15681568
// Generate a new keypair for cert signing
15691569
P256Keypair keypair;
1570-
NL_TEST_ASSERT(inSuite, keypair.Initialize() == CHIP_NO_ERROR);
1570+
NL_TEST_ASSERT(inSuite, keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
15711571

15721572
static uint8_t root_cert[kMaxDERCertLength];
15731573

@@ -1594,7 +1594,7 @@ static void TestChipCert_VerifyGeneratedCertsNoICA(nlTestSuite * inSuite, void *
15941594

15951595
X509CertRequestParams noc_params = { 1234, 631161876, 729942000, noc_dn, root_dn };
15961596
P256Keypair noc_keypair;
1597-
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize() == CHIP_NO_ERROR);
1597+
NL_TEST_ASSERT(inSuite, noc_keypair.Initialize(ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
15981598

15991599
MutableByteSpan noc_cert_span(noc_cert);
16001600
NL_TEST_ASSERT(inSuite, NewNodeOperationalX509Cert(noc_params, noc_keypair.Pubkey(), keypair, noc_cert_span) == CHIP_NO_ERROR);

src/credentials/tests/TestFabricTable.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ void TestBasicAddNocUpdateNocFlow(nlTestSuite * inSuite, void * inContext)
514514
constexpr uint16_t kVendorId = 0xFFF1u;
515515

516516
chip::Crypto::P256Keypair fabric11Node55Keypair; // Fabric ID 11,
517-
NL_TEST_ASSERT(inSuite, fabric11Node55Keypair.Initialize() == CHIP_NO_ERROR);
517+
NL_TEST_ASSERT(inSuite, fabric11Node55Keypair.Initialize(Crypto::ECPKeyTarget::ECDSA) == CHIP_NO_ERROR);
518518

519519
// Initialize a fabric table.
520520
ScopedFabricTable fabricTableHolder;
@@ -2523,7 +2523,7 @@ void TestEphemeralKeys(nlTestSuite * inSuite, void * inContext)
25232523

25242524
Crypto::P256Keypair * ephemeralKeypair = fabricTable.AllocateEphemeralKeypairForCASE();
25252525
NL_TEST_ASSERT(inSuite, ephemeralKeypair != nullptr);
2526-
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->Initialize());
2526+
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->Initialize(Crypto::ECPKeyTarget::ECDSA));
25272527

25282528
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->ECDSA_sign_msg(message, sizeof(message), sig));
25292529
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->Pubkey().ECDSA_validate_msg_signature(message, sizeof(message), sig));
@@ -2550,7 +2550,7 @@ void TestEphemeralKeys(nlTestSuite * inSuite, void * inContext)
25502550

25512551
Crypto::P256Keypair * ephemeralKeypair = fabricTable.AllocateEphemeralKeypairForCASE();
25522552
NL_TEST_ASSERT(inSuite, ephemeralKeypair != nullptr);
2553-
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->Initialize());
2553+
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->Initialize(Crypto::ECPKeyTarget::ECDSA));
25542554

25552555
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->ECDSA_sign_msg(message, sizeof(message), sig));
25562556
NL_TEST_ASSERT_SUCCESS(inSuite, ephemeralKeypair->Pubkey().ECDSA_validate_msg_signature(message, sizeof(message), sig));

src/crypto/CHIPCryptoPAL.h

+8-2
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,12 @@ enum class SupportedECPKeyTypes : uint8_t
170170
ECP256R1 = 0,
171171
};
172172

173+
enum class ECPKeyTarget : uint8_t
174+
{
175+
ECDH = 0,
176+
ECDSA = 1,
177+
};
178+
173179
/** @brief Safely clears the first `len` bytes of memory area `buf`.
174180
* @param buf Pointer to a memory buffer holding secret data that must be cleared.
175181
* @param len Specifies secret data size in bytes.
@@ -385,7 +391,7 @@ class P256KeypairBase : public ECPKeypair<P256PublicKey, P256ECDHDerivedSecret,
385391
* @brief Initialize the keypair.
386392
* @return Returns a CHIP_ERROR on error, CHIP_NO_ERROR otherwise
387393
**/
388-
virtual CHIP_ERROR Initialize() = 0;
394+
virtual CHIP_ERROR Initialize(ECPKeyTarget key_target) = 0;
389395

390396
/**
391397
* @brief Serialize the keypair.
@@ -410,7 +416,7 @@ class P256Keypair : public P256KeypairBase
410416
* @brief Initialize the keypair.
411417
* @return Returns a CHIP_ERROR on error, CHIP_NO_ERROR otherwise
412418
**/
413-
CHIP_ERROR Initialize() override;
419+
CHIP_ERROR Initialize(ECPKeyTarget key_target) override;
414420

415421
/**
416422
* @brief Serialize the keypair.

src/crypto/CHIPCryptoPALOpenSSL.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1020,7 +1020,7 @@ static CHIP_ERROR P256PublicKeyFromECKey(EC_KEY * ec_key, P256PublicKey & pubkey
10201020
return error;
10211021
}
10221022

1023-
CHIP_ERROR P256Keypair::Initialize()
1023+
CHIP_ERROR P256Keypair::Initialize(ECPKeyTarget key_target)
10241024
{
10251025
ERR_clear_error();
10261026

0 commit comments

Comments
 (0)