Skip to content

Issues with RSA public key #445

Description

@christopherL91

Hi,

Thank yoy soo much for your time spent on this project, looking forward exploring it some more.

I had a quick question regarding the use of this library and it's something I've been struggeling with for a while now.

        let rsa_pub = RsaPublicKey::from_public_key_pem(&response.pem)
            .map_err(|e| format!("RSA PEM parse error: {:?}", e))
            .unwrap();

        let pkcs1_der_document = rsa_pub
            .to_pkcs1_der()
            .map_err(|e| anyhow::anyhow!("PKCS#1 DER encode error: {}", e))?;

        let result = KSMPublicKey {
            id: Sha256::digest(response.name.as_bytes()).to_vec(),
            label: response.name,
            algorithm: KeyAlgorithm::Rsa,
            der: pkcs1_der_document.into_vec(),
        };

Is this correct?

Getting weird error message when using pkcs11-tool

warning: PKCS11 function C_GetAttributeValue(MODULUS_BITS) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)
warning: PKCS11 function C_GetAttributeValue(ENCRYPT) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)
warning: PKCS11 function C_GetAttributeValue(VERIFY) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)
warning: PKCS11 function C_GetAttributeValue(VERIFY_RECOVER) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)
warning: PKCS11 function C_GetAttributeValue(WRAP) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)

Based on the info I can see in the attributes.rs file these values should be injected automatically but maybe I'm missing something?

Should I also implement any more C_* functions other than C_GetFunctionList ?

Currently building a GCP KMS module that is mostly working but there are still some weird edge cases I need to solve.

Thank you

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions