Skip to content

Commit f4500d6

Browse files
keymgmt: Modify match function and unit tests
Before, keymgmt match was testing for key names. This does not apply as what should be compared is the public key content in the TLS handshake. Remove that comparison and the corresponding tests. Signed-off-by: Tomás González <tomasagustin.gonzalezorlando@arm.com>
1 parent f60162a commit f4500d6

File tree

1 file changed

+2
-80
lines changed
  • parsec-openssl-provider/src/keymgmt

1 file changed

+2
-80
lines changed

parsec-openssl-provider/src/keymgmt/mod.rs

Lines changed: 2 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,8 @@ pub unsafe extern "C" fn parsec_provider_kmgmt_match(
382382
let reader_key_data1 = key_data1.read().unwrap();
383383
let reader_key_data2 = key_data2.read().unwrap();
384384

385-
if reader_key_data1.get_rsa_key() == reader_key_data2.get_rsa_key() {
385+
if reader_key_data1.get_rsa_key() == reader_key_data2.get_rsa_key()
386+
{
386387
Ok(OPENSSL_SUCCESS)
387388
} else {
388389
Err("Public parts of the keys do not match".into())
@@ -525,7 +526,6 @@ pub const PARSEC_PROVIDER_KEYMGMT: [OSSL_ALGORITHM; 3] = [
525526

526527
#[test]
527528
fn test_kmgmt_has() {
528-
use crate::openssl_bindings::OSSL_KEYMGMT_SELECT_PRIVATE_KEY;
529529
use crate::{parsec_provider_provider_init, parsec_provider_teardown};
530530

531531
let out: *const OSSL_DISPATCH = std::ptr::null();
@@ -587,7 +587,6 @@ fn test_kmgmt_has() {
587587

588588
#[test]
589589
fn test_kmgmt_match() {
590-
use crate::openssl_bindings::OSSL_KEYMGMT_SELECT_PRIVATE_KEY;
591590
use crate::{parsec_provider_provider_init, parsec_provider_teardown};
592591

593592
let out: *const OSSL_DISPATCH = std::ptr::null();
@@ -628,83 +627,6 @@ fn test_kmgmt_match() {
628627
};
629628
assert_eq!(result, OPENSSL_ERROR);
630629

631-
// Check the case in which both keyobj are empty
632-
let keyobj2 = unsafe { parsec_provider_kmgmt_new(provctx) };
633-
let result = unsafe {
634-
parsec_provider_kmgmt_match(
635-
keyobj1,
636-
keyobj2,
637-
OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS as i32,
638-
)
639-
};
640-
assert_eq!(result, OPENSSL_SUCCESS);
641-
642-
// Check the case in which one keyobj are empty, the other has a key_name set
643-
let key_name1 = "KEY-NAME1".to_string();
644-
let mut key1_params = [
645-
ossl_param!(PARSEC_PROVIDER_KEY_NAME, OSSL_PARAM_UTF8_PTR, key_name1),
646-
ossl_param!(),
647-
];
648-
let set_params_res1 =
649-
unsafe { parsec_provider_kmgmt_set_params(keyobj1, &mut key1_params as _) };
650-
assert_eq!(set_params_res1, OPENSSL_SUCCESS);
651-
652-
let result = unsafe {
653-
parsec_provider_kmgmt_match(
654-
keyobj1,
655-
keyobj2,
656-
OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS as i32,
657-
)
658-
};
659-
assert_eq!(result, OPENSSL_ERROR);
660-
661-
// Check the case in which both keyobj have a set key_name but these are different from each other
662-
let key_name2 = "KEY-NAME2".to_string();
663-
let mut key2_params = [
664-
ossl_param!(PARSEC_PROVIDER_KEY_NAME, OSSL_PARAM_UTF8_PTR, key_name2),
665-
ossl_param!(),
666-
];
667-
let set_params_res2 =
668-
unsafe { parsec_provider_kmgmt_set_params(keyobj2, &mut key2_params as _) };
669-
assert_eq!(set_params_res2, OPENSSL_SUCCESS);
670-
671-
let result = unsafe {
672-
parsec_provider_kmgmt_match(
673-
keyobj1,
674-
keyobj2,
675-
OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS as i32,
676-
)
677-
};
678-
assert_eq!(result, OPENSSL_ERROR);
679-
680-
/* Check the case in which a parameter other than OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS is used
681-
this should be ok, as the only match we care about right now is for
682-
OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS*/
683-
let result = unsafe {
684-
parsec_provider_kmgmt_match(keyobj1, keyobj2, OSSL_KEYMGMT_SELECT_PRIVATE_KEY as i32)
685-
};
686-
assert_eq!(result, OPENSSL_SUCCESS);
687-
688-
/* Check the case in which both keyobj have the same name set and the relevant selection
689-
(OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS) is used*/
690-
let key_name2 = "KEY-NAME1".to_string();
691-
let mut key2_params = [
692-
ossl_param!(PARSEC_PROVIDER_KEY_NAME, OSSL_PARAM_UTF8_PTR, key_name2),
693-
ossl_param!(),
694-
];
695-
let set_params_res2 =
696-
unsafe { parsec_provider_kmgmt_set_params(keyobj2, &mut key2_params as _) };
697-
assert_eq!(set_params_res2, OPENSSL_SUCCESS);
698-
699-
let result = unsafe {
700-
parsec_provider_kmgmt_match(
701-
keyobj1,
702-
keyobj2,
703-
OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS as i32,
704-
)
705-
};
706-
assert_eq!(result, OPENSSL_SUCCESS);
707-
708630
unsafe {
709631
parsec_provider_kmgmt_free(keyobj1);
710632
parsec_provider_kmgmt_free(keyobj2);

0 commit comments

Comments
 (0)