mirror of
https://github.com/servo/servo
synced 2026-05-14 19:06:31 +02:00
Refactoring of the algorithm normalization in #39431 introduces a new algorithm normalization procedure to replace the existing one, and we continue the migration here. In this patch: - The `SubtleCrypto.importKey` method is migrated from using existing `normalize_algorithm_for_import_key` function to using the new `normalize_algorithm` function. - The `import_key_aes`, `import_key_hkdf`, `import_key_hmac` and `import_key_pbkdf2` are copied to the `aes_operation`, `hkdf_operation`, `hmac_operation`, `pbkdf2_operation` submodules, according to their types of cryptographic algorithms. - The above `import_key_xxx` methods are supposed to move the submodules, but they are copied without removal in this patch. It is because they are used by the `wrapKey` and `unwrapKey` operations which have not migrated at this moment. Once `wrapKey` and `unwrapKey` are migrated, they can be removed. - The custom type `ImportKeyAlgorithm` and `normalize_algorithm_for_import_key` are supposed to be removed, but they are not removed at this moment since they are used by the `wrapKey` and `unwrapKey` operations which have not migrated. Once `wrapKey` and `unwrapKey` are migrated, they can be removed. Remarks: According to the spec, the `SubtleCrypto.exportKey` method does not use the algorithm normalization. However, we move the "export" counterpart of the above `import_key_xxx` functions all together. So, some refactoring is also made to the `ExportKey` method. Testing: Refactoring. Existing WPT tests suffice. Fixes: Part of #39368 Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>