Skip to content

Commit 1b95397

Browse files
committed
[Matter.framework] Update some test/helper code to use bridge_transfer where needed.
1 parent e419e33 commit 1b95397

File tree

2 files changed

+47
-27
lines changed

2 files changed

+47
-27
lines changed

src/darwin/CHIPTool/CHIPTool/Framework Helpers/FabricKeys.m

+28-17
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,14 @@ + (SecKeyRef)loadCAPrivateKey
139139
return NULL;
140140
}
141141

142-
CFErrorRef error = NULL;
142+
CFErrorRef cfError = NULL;
143143
SecKeyRef key = SecKeyCreateWithData(
144-
(__bridge CFDataRef) keyData, (__bridge CFDictionaryRef)[FabricKeys privateKeyCreationParams], &error);
145-
if (error) {
146-
NSLog(@"Could not reconstruct private key %@", (__bridge NSError *) error);
144+
(__bridge CFDataRef) keyData,
145+
(__bridge CFDictionaryRef)[FabricKeys privateKeyCreationParams],
146+
&cfError);
147+
148+
if (!key) {
149+
NSLog(@"Could not reconstruct private key %@", (__bridge_transfer NSError *) cfError);
147150
return NULL;
148151
}
149152

@@ -159,16 +162,19 @@ + (SecKeyRef)generateCAPrivateKey
159162
// item at all.
160163
SecItemDelete((__bridge CFDictionaryRef) query);
161164

162-
CFErrorRef error = NULL;
163-
SecKeyRef key = SecKeyCreateRandomKey((__bridge CFDictionaryRef)[FabricKeys privateKeyCreationParams], &error);
164-
if (error) {
165-
NSLog(@"Could not generate private key: %@", (__bridge NSError *) error);
165+
CFErrorRef cfError = NULL;
166+
SecKeyRef key = SecKeyCreateRandomKey(
167+
(__bridge CFDictionaryRef)[FabricKeys privateKeyCreationParams],
168+
&cfError);
169+
170+
if (!key) {
171+
NSLog(@"Could not generate private key: %@", (__bridge_transfer NSError *) cfError);
166172
return NULL;
167173
}
168174

169-
NSData * keyData = (__bridge_transfer NSData *) SecKeyCopyExternalRepresentation(key, &error);
170-
if (error) {
171-
NSLog(@"Could not get key external representation: %@", (__bridge NSError *) error);
175+
NSData * keyData = (__bridge_transfer NSData *) SecKeyCopyExternalRepresentation(key, &cfError);
176+
if (!keyData) {
177+
NSLog(@"Could not get key external representation: %@", (__bridge_transfer NSError *) cfError);
172178
CFRelease(key);
173179
return NULL;
174180
}
@@ -209,13 +215,18 @@ - (instancetype)init
209215

210216
- (NSData *)signMessageECDSA_DER:(NSData *)message
211217
{
212-
CFErrorRef error = NULL;
213-
CFDataRef outData
214-
= SecKeyCreateSignature(_privateKey, kSecKeyAlgorithmECDSASignatureMessageX962SHA256, (__bridge CFDataRef) message, &error);
215-
216-
if (error != noErr) {
217-
NSLog(@"Failed to sign cert: %@", (__bridge NSError *) error);
218+
CFErrorRef cfError = NULL;
219+
CFDataRef cfData = SecKeyCreateSignature(
220+
_privateKey,
221+
kSecKeyAlgorithmECDSASignatureMessageX962SHA256,
222+
(__bridge CFDataRef) message,
223+
&cfError);
224+
225+
if (!cfData) {
226+
NSLog(@"Failed to sign cert: %@", (__bridge_transfer NSError *) cfError);
227+
return nil;
218228
}
229+
219230
return (__bridge_transfer NSData *) outData;
220231
}
221232

src/darwin/Framework/CHIPTests/TestHelpers/MTRTestKeys.m

+19-10
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,23 @@ - (instancetype)init
6060

6161
// Generate a keypair. For now harcoded to 256 bits until the framework exposes this constant.
6262
const size_t keySizeInBits = 256;
63-
CFErrorRef error = NULL;
6463
const NSDictionary * keygenParams = @{
6564
(__bridge NSString *) kSecAttrKeyClass : (__bridge NSString *) kSecAttrKeyClassPrivate,
6665
(__bridge NSString *) kSecAttrKeyType : (__bridge NSString *) kSecAttrKeyTypeECSECPrimeRandom,
6766
(__bridge NSString *) kSecAttrKeySizeInBits : @(keySizeInBits),
6867
(__bridge NSString *) kSecAttrIsPermanent : @(NO)
6968
};
7069

71-
_privateKey = SecKeyCreateRandomKey((__bridge CFDictionaryRef) keygenParams, &error);
72-
if (error) {
73-
NSLog(@"Failed to generate private key");
70+
CFErrorRef cfError = NULL;
71+
_privateKey = SecKeyCreateRandomKey(
72+
(__bridge CFDictionaryRef) keygenParams,
73+
&cfError);
74+
75+
if (!_privateKey) {
76+
NSLog(@"Failed to generate private key: %@", (__bridge_transfer NSError *) cfError);
7477
return nil;
7578
}
79+
7680
_publicKey = SecKeyCopyPublicKey(_privateKey);
7781

7882
_signatureCount = 0;
@@ -84,14 +88,19 @@ - (NSData *)signMessageECDSA_DER:(NSData *)message
8488
{
8589
++_signatureCount;
8690

87-
CFErrorRef error = NULL;
88-
CFDataRef outData
89-
= SecKeyCreateSignature(_privateKey, kSecKeyAlgorithmECDSASignatureMessageX962SHA256, (__bridge CFDataRef) message, &error);
91+
CFErrorRef cfError = NULL;
92+
CFDataRef cfData = SecKeyCreateSignature(
93+
_privateKey,
94+
kSecKeyAlgorithmECDSASignatureMessageX962SHA256,
95+
(__bridge CFDataRef) message,
96+
&cfError);
9097

91-
if (error != noErr) {
92-
NSLog(@"Failed to sign cert: %@", (__bridge NSError *) error);
98+
if (!cfData) {
99+
NSLog(@"Failed to sign cert: %@", (__bridge_transfer NSError *) cfError);
100+
return nil;
93101
}
94-
return (__bridge_transfer NSData *) outData;
102+
103+
return (__bridge_transfer NSData *) cfData;
95104
}
96105

97106
- (void)dealloc

0 commit comments

Comments
 (0)