Draft design for Key Derivation API

Adam Petcher adam.petcher at oracle.com
Thu Nov 16 18:29:53 UTC 2017


On 11/8/2017 6:50 PM, Michael StJohns wrote:

>>> On 11/3/2017 4:59 PM, Jamil Nimeh wrote:
>>>> Add a .deriveData() with a return class of byte[].   This gets a 
>>>> portion of the derived data stream in the clear. E.g. an IV.
>>>>
>>>> Add a .deriveObject() with a return class of Object.  The returned 
>>>> object may not be an instance of java.security.Key.  This takes the 
>>>> derived data stream and converts it into the object type specified 
>>>> by the derivation parameter.  In a hardware security module, this 
>>>> might be a reference to a secured set of data or even an 
>>>> confidential IV.
>>> Again, just want to make sure I understand fully: So in a case where 
>>> I want a given output to be an Object, I would provide a 
>>> DerivationParameterSpec with an alg of..."Object" (?), a byte 
>>> length, and Object-specific parameters provided through the "params" 
>>> argument to the DPS?
>
> Working this through, but it should be a Class  being specified with a 
> constructor of a byte array plus a length.

What is the motivation behind this constructor that takes a byte array? 
It seems like this constructor wouldn't actually help in a hardware 
implementation. Would it be better to leave the construction of this 
object to the implementation?



More information about the security-dev mailing list