Skip to content

Commit f94eb1b

Browse files
simo5Gemini
andcommitted
Rename default_object_* methods to default_key_*
Refactor the ObjectFactory trait to rename the default helper methods from `default_object_*` to `default_key_*`. This affects the create, generate, derive, and unwrap functions. Update all implementation files and call sites to use the new method names, aligning with the terminology used for key operations. Co-authored-by: Gemini <gemini@google.com> Signed-off-by: Simo Sorce <simo@redhat.com>
1 parent 1b35300 commit f94eb1b

File tree

13 files changed

+81
-96
lines changed

13 files changed

+81
-96
lines changed

src/aes.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ impl ObjectFactory for AesKeyFactory {
127127
/// code and additionally ensures the key size is one of the AES allowed
128128
/// sizes (currently 128, 192 or 256 bits).
129129
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
130-
let mut obj = self.default_object_create(template)?;
130+
let mut obj = self.default_key_create(template)?;
131131
let len = self.get_key_buffer_len(&obj)?;
132132
check_key_len(len)?;
133133
obj.ensure_ulong(CKA_VALUE_LEN, CK_ULONG::try_from(len)?)?;
@@ -171,7 +171,7 @@ impl ObjectFactory for AesKeyFactory {
171171

172172
/// The AES derive adds key length checks on top of the generic secret
173173
/// derive helper
174-
fn default_object_derive(
174+
fn default_key_derive(
175175
&self,
176176
template: &[CK_ATTRIBUTE],
177177
origin: &Object,
@@ -303,7 +303,7 @@ impl Mechanism for AesMechanism {
303303
if mech.mechanism != CKM_AES_KEY_GEN {
304304
return Err(CKR_MECHANISM_INVALID)?;
305305
}
306-
let mut key = AES_KEY_FACTORY.default_object_generate(template)?;
306+
let mut key = AES_KEY_FACTORY.default_key_generate(template)?;
307307
key.ensure_ulong(CKA_CLASS, CKO_SECRET_KEY)
308308
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
309309
key.ensure_ulong(CKA_KEY_TYPE, CKK_AES)
@@ -621,12 +621,11 @@ impl Derive for AesKDFOperation<'_> {
621621
return Err(CKR_OPERATION_NOT_INITIALIZED)?;
622622
}
623623
self.finalized = true;
624-
625624
key.check_key_ops(CKO_SECRET_KEY, CKK_AES, CKA_DERIVE)?;
626625

627626
let factory =
628627
objfactories.get_obj_factory_from_key_template(template)?;
629-
let mut obj = factory.default_object_derive(template, key)?;
628+
let mut obj = factory.default_key_derive(template, key)?;
630629

631630
let mechanism = CK_MECHANISM {
632631
mechanism: self.mech,

src/ec/ecdsa.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,16 @@ impl ECDSAPubFactory {
139139
factory
140140
}
141141
}
142-
143142
impl ObjectFactory for ECDSAPubFactory {
144143
/// Creates an EC Public-Key Object from a template
145144
///
146145
/// Validates that the provided attributes are consistent with the
147-
/// factory via [ObjectFactory::default_object_create()]
146+
/// factory via [ObjectFactory::default_key_create()]
148147
///
149148
/// Additionally validates the Public Point Format and that its size
150149
/// is consistent with the EC Parameters provided
151150
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
152-
let mut obj = self.default_object_create(template)?;
151+
let mut obj = self.default_key_create(template)?;
153152

154153
/* According to PKCS#11 v3.1 6.3.3:
155154
* CKA_EC_PARAMS, Byte array,
@@ -252,17 +251,16 @@ impl ECDSAPrivFactory {
252251
factory
253252
}
254253
}
255-
256254
impl ObjectFactory for ECDSAPrivFactory {
257255
/// Creates an ECDSA Private-Key Object from a template
258256
///
259257
/// Validates that the provided attributes are consistent with the
260-
/// factory via [ObjectFactory::default_object_create()]
258+
/// factory via [ObjectFactory::default_key_create()]
261259
///
262260
/// Additionally validates that the private key size is consistent
263261
/// with the EC Parameters provided
264262
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
265-
let mut obj = self.default_object_create(template)?;
263+
let mut obj = self.default_key_create(template)?;
266264

267265
/* According to PKCS#11 v3.1 6.3.4:
268266
* CKA_EC_PARAMS, Byte array,
@@ -350,7 +348,7 @@ impl PrivKeyFactory for ECDSAPrivFactory {
350348
data: Vec<u8>,
351349
template: &[CK_ATTRIBUTE],
352350
) -> Result<Object> {
353-
import_from_wrapped(CKK_EC, data, self.default_object_unwrap(template)?)
351+
import_from_wrapped(CKK_EC, data, self.default_key_unwrap(template)?)
354352
}
355353
}
356354

@@ -425,7 +423,7 @@ impl Mechanism for EcdsaMechanism {
425423
prikey_template: &[CK_ATTRIBUTE],
426424
) -> Result<(Object, Object)> {
427425
let mut pubkey =
428-
PUBLIC_KEY_FACTORY.default_object_generate(pubkey_template)?;
426+
PUBLIC_KEY_FACTORY.default_key_generate(pubkey_template)?;
429427
pubkey
430428
.ensure_ulong(CKA_CLASS, CKO_PUBLIC_KEY)
431429
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
@@ -434,7 +432,7 @@ impl Mechanism for EcdsaMechanism {
434432
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
435433

436434
let mut privkey =
437-
PRIVATE_KEY_FACTORY.default_object_generate(prikey_template)?;
435+
PRIVATE_KEY_FACTORY.default_key_generate(prikey_template)?;
438436
privkey
439437
.ensure_ulong(CKA_CLASS, CKO_PRIVATE_KEY)
440438
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;

src/ec/eddsa.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,16 @@ impl EDDSAPubFactory {
120120
factory
121121
}
122122
}
123-
124123
impl ObjectFactory for EDDSAPubFactory {
125124
/// Creates a CKK_EC_EDWARDS Public-Key Object from a template
126125
///
127126
/// Validates that the provided attributes are consistent with the
128-
/// factory via [ObjectFactory::default_object_create()]
127+
/// factory via [ObjectFactory::default_key_create()]
129128
///
130129
/// Additionally validates the Public Point Format and that its size
131130
/// is consistent with the EC Parameters provided
132131
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
133-
let mut obj = self.default_object_create(template)?;
132+
let mut obj = self.default_key_create(template)?;
134133

135134
/* According to PKCS#11 v3.1 6.3.5:
136135
* CKA_EC_PARAMS, Byte array,
@@ -238,17 +237,16 @@ impl EDDSAPrivFactory {
238237
factory
239238
}
240239
}
241-
242240
impl ObjectFactory for EDDSAPrivFactory {
243241
/// Creates an EdDSA Private-Key Object from a template
244242
///
245243
/// Validates that the provided attributes are consistent with the
246-
/// factory via [ObjectFactory::default_object_create()]
244+
/// factory via [ObjectFactory::default_key_create()]
247245
///
248246
/// Additionally validates that the private key size is consistent
249247
/// with the EC Parameters provided
250248
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
251-
let mut obj = self.default_object_create(template)?;
249+
let mut obj = self.default_key_create(template)?;
252250

253251
/* According to PKCS#11 v3.1 6.3.6:
254252
* CKA_EC_PARAMS, Byte array,
@@ -327,12 +325,13 @@ impl PrivKeyFactory for EDDSAPrivFactory {
327325
import_from_wrapped(
328326
CKK_EC_EDWARDS,
329327
data,
330-
self.default_object_unwrap(template)?,
328+
self.default_key_unwrap(template)?,
331329
)
332330
}
333331
}
334332

335333
/// Object that represents EdDSA related mechanisms
334+
336335
#[derive(Debug)]
337336
struct EddsaMechanism {
338337
info: CK_MECHANISM_INFO,
@@ -398,7 +397,7 @@ impl Mechanism for EddsaMechanism {
398397
prikey_template: &[CK_ATTRIBUTE],
399398
) -> Result<(Object, Object)> {
400399
let mut pubkey =
401-
PUBLIC_KEY_FACTORY.default_object_generate(pubkey_template)?;
400+
PUBLIC_KEY_FACTORY.default_key_generate(pubkey_template)?;
402401
pubkey
403402
.ensure_ulong(CKA_CLASS, CKO_PUBLIC_KEY)
404403
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
@@ -407,7 +406,7 @@ impl Mechanism for EddsaMechanism {
407406
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
408407

409408
let mut privkey =
410-
PRIVATE_KEY_FACTORY.default_object_generate(prikey_template)?;
409+
PRIVATE_KEY_FACTORY.default_key_generate(prikey_template)?;
411410
privkey
412411
.ensure_ulong(CKA_CLASS, CKO_PRIVATE_KEY)
413412
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;

src/ec/montgomery.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,16 @@ impl ECMontgomeryPubFactory {
114114
factory
115115
}
116116
}
117-
118117
impl ObjectFactory for ECMontgomeryPubFactory {
119118
/// Creates an EC-Montgomery Public-Key Object from a template
120119
///
121120
/// Validates that the provided attributes are consistent with the
122-
/// factory via [ObjectFactory::default_object_create()]
121+
/// factory via [ObjectFactory::default_key_create()]
123122
///
124123
/// Additionally validates the Public Point Format and that its size
125124
/// is consistent with the EC Parameters provided
126125
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
127-
let mut obj = self.default_object_create(template)?;
126+
let mut obj = self.default_key_create(template)?;
128127

129128
/* According to PKCS#11 v3.1 6.3.7:
130129
* CKA_EC_PARAMS, Byte array,
@@ -223,17 +222,16 @@ impl ECMontgomeryPrivFactory {
223222
factory
224223
}
225224
}
226-
227225
impl ObjectFactory for ECMontgomeryPrivFactory {
228226
/// Creates an EC-Montgomery Private-Key Object from a template
229227
///
230228
/// Validates that the provided attributes are consistent with the
231-
/// factory via [ObjectFactory::default_object_create()]
229+
/// factory via [ObjectFactory::default_key_create()]
232230
///
233231
/// Additionally validates that the private key size is consistent
234232
/// with the EC Parameters provided
235233
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
236-
let mut obj = self.default_object_create(template)?;
234+
let mut obj = self.default_key_create(template)?;
237235

238236
/* According to PKCS#11 v3.1 6.3.8:
239237
* CKA_EC_PARAMS, Byte array,
@@ -312,12 +310,13 @@ impl PrivKeyFactory for ECMontgomeryPrivFactory {
312310
import_from_wrapped(
313311
CKK_EC_MONTGOMERY,
314312
data,
315-
self.default_object_unwrap(template)?,
313+
self.default_key_unwrap(template)?,
316314
)
317315
}
318316
}
319317

320318
/// Object that represents CKK_EC_MONTGOMERY related mechanisms
319+
321320
#[derive(Debug)]
322321
struct ECMontgomeryMechanism {
323322
info: CK_MECHANISM_INFO,
@@ -335,7 +334,7 @@ impl Mechanism for ECMontgomeryMechanism {
335334
prikey_template: &[CK_ATTRIBUTE],
336335
) -> Result<(Object, Object)> {
337336
let mut pubkey =
338-
PUBLIC_KEY_FACTORY.default_object_generate(pubkey_template)?;
337+
PUBLIC_KEY_FACTORY.default_key_generate(pubkey_template)?;
339338
pubkey
340339
.ensure_ulong(CKA_CLASS, CKO_PUBLIC_KEY)
341340
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
@@ -344,7 +343,7 @@ impl Mechanism for ECMontgomeryMechanism {
344343
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
345344

346345
let mut privkey =
347-
PRIVATE_KEY_FACTORY.default_object_generate(prikey_template)?;
346+
PRIVATE_KEY_FACTORY.default_key_generate(prikey_template)?;
348347
privkey
349348
.ensure_ulong(CKA_CLASS, CKO_PRIVATE_KEY)
350349
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;

src/ffdh.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,17 +136,16 @@ impl FFDHPubFactory {
136136
factory
137137
}
138138
}
139-
140139
impl ObjectFactory for FFDHPubFactory {
141140
/// Creates an FFDH Public-Key Object from a template
142141
///
143142
/// Validates that the provided attributes are consistent with the
144-
/// factory via [ObjectFactory::default_object_create()]
143+
/// factory via [ObjectFactory::default_key_create()]
145144
///
146145
/// Additionally validates that the key is based on a well known
147146
/// group based on safe primes
148147
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
149-
let mut obj = self.default_object_create(template)?;
148+
let mut obj = self.default_key_create(template)?;
150149
let group = ffdh_groups::get_group_name(&obj)?;
151150
ffdh_public_key_info(group, &mut obj)?;
152151
Ok(obj)
@@ -202,17 +201,16 @@ impl FFDHPrivFactory {
202201
factory
203202
}
204203
}
205-
206204
impl ObjectFactory for FFDHPrivFactory {
207205
/// Creates an FFDH Private-Key Object from a template
208206
///
209207
/// Validates that the provided attributes are consistent with the
210-
/// factory via [ObjectFactory::default_object_create()]
208+
/// factory via [ObjectFactory::default_key_create()]
211209
///
212210
/// Additionally validates that the key is based on a well known
213211
/// group based on safe primes
214212
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
215-
let obj = self.default_object_create(template)?;
213+
let obj = self.default_key_create(template)?;
216214
let _ = ffdh_groups::get_group_name(&obj)?;
217215

218216
Ok(obj)
@@ -279,7 +277,7 @@ impl Mechanism for FFDHMechanism {
279277
prikey_template: &[CK_ATTRIBUTE],
280278
) -> Result<(Object, Object)> {
281279
let mut pubkey =
282-
PUBLIC_KEY_FACTORY.default_object_generate(pubkey_template)?;
280+
PUBLIC_KEY_FACTORY.default_key_generate(pubkey_template)?;
283281
pubkey
284282
.ensure_ulong(CKA_CLASS, CKO_PUBLIC_KEY)
285283
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
@@ -288,7 +286,7 @@ impl Mechanism for FFDHMechanism {
288286
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
289287

290288
let mut privkey =
291-
PRIVATE_KEY_FACTORY.default_object_generate(prikey_template)?;
289+
PRIVATE_KEY_FACTORY.default_key_generate(prikey_template)?;
292290
privkey
293291
.ensure_ulong(CKA_CLASS, CKO_PRIVATE_KEY)
294292
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;

src/hash.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,12 +362,11 @@ impl Derive for HashKDFOperation {
362362
.as_secret_key_factory()?
363363
.recommend_key_size(hashsize)?,
364364
)?;
365-
366365
tmpl.add_ulong(CKA_VALUE_LEN, &keysize);
367366
}
368367
}
369368

370-
let mut obj = factory.default_object_derive(tmpl.as_slice(), key)?;
369+
let mut obj = factory.default_key_derive(tmpl.as_slice(), key)?;
371370

372371
let mut dkm = vec![0u8; hashsize];
373372
op.digest(

src/mldsa.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,11 @@ impl MlDsaPubFactory {
180180
impl ObjectFactory for MlDsaPubFactory {
181181
/// Creates a ML-DSA public key object
182182
///
183-
/// Uses [ObjectFactory::default_object_create()]
183+
/// Uses [ObjectFactory::default_key_create()]
184184
///
185185
/// Checks the import is consistent via helper function
186186
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
187-
let mut obj = self.default_object_create(template)?;
187+
let mut obj = self.default_key_create(template)?;
188188

189189
mldsa_pub_check_import(&mut obj)?;
190190

@@ -315,11 +315,11 @@ impl MlDsaPrivFactory {
315315
impl ObjectFactory for MlDsaPrivFactory {
316316
/// Creates a ML-DSA private key object
317317
///
318-
/// Uses [ObjectFactory::default_object_create()]
318+
/// Uses [ObjectFactory::default_key_create()]
319319
///
320320
/// Checks the import is consistent via helper function
321321
fn create(&self, template: &[CK_ATTRIBUTE]) -> Result<Object> {
322-
let mut obj = self.default_object_create(template)?;
322+
let mut obj = self.default_key_create(template)?;
323323

324324
mldsa_priv_check_import(&mut obj)?;
325325

@@ -441,7 +441,7 @@ impl Mechanism for MlDsaMechanism {
441441
prikey_template: &[CK_ATTRIBUTE],
442442
) -> Result<(Object, Object)> {
443443
let mut pubkey =
444-
PUBLIC_KEY_FACTORY.default_object_generate(pubkey_template)?;
444+
PUBLIC_KEY_FACTORY.default_key_generate(pubkey_template)?;
445445
pubkey
446446
.ensure_ulong(CKA_CLASS, CKO_PUBLIC_KEY)
447447
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;
@@ -458,7 +458,7 @@ impl Mechanism for MlDsaMechanism {
458458
};
459459

460460
let mut privkey =
461-
PRIVATE_KEY_FACTORY.default_object_generate(prikey_template)?;
461+
PRIVATE_KEY_FACTORY.default_key_generate(prikey_template)?;
462462
privkey
463463
.ensure_ulong(CKA_CLASS, CKO_PRIVATE_KEY)
464464
.map_err(|_| CKR_TEMPLATE_INCONSISTENT)?;

0 commit comments

Comments
 (0)