Currently, the code I am staring at uses the CKM_EXTRACT_KEY_FROM_KEY mechanism. That has been disabled in our hardware module, so I need a different mechanism to derive a new key from an existing aes key. I don't want to change too much code as I don't know what the ramifications will be. I could use C_CopyObject, but that is no more secure that the mechanism it would replace, from my very limited understanding of crypto stuff.

What alternatives exist to derive a key from an existing AES key?

  • $\begingroup$ HKDF. Or similar KBKDFs. $\endgroup$ – SEJPM Oct 7 '15 at 16:50
  • $\begingroup$ I presume you are limited to PKCS#11 ? Which version? 2.20? $\endgroup$ – Maarten Bodewes Oct 7 '15 at 22:52
  • $\begingroup$ What is the purpose of deriving a new key? I.e. what are the old and new keys used for? $\endgroup$ – otus Oct 8 '15 at 6:43
  • $\begingroup$ v 2.20, yes. They are single purpose keys - we create a key with the derive attribute set, then use that to create new keys with wrap, encrypt, decrypt, etc. attributes. $\endgroup$ – Jon Oct 8 '15 at 15:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.