Class BCLMSPrivateKey
java.lang.Object
org.bouncycastle.pqc.jcajce.provider.lms.BCLMSPrivateKey
- All Implemented Interfaces:
Serializable,Key,PrivateKey,Destroyable,LMSKey,LMSPrivateKey
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionBCLMSPrivateKey(PrivateKeyInfo keyInfo) BCLMSPrivateKey(LMSKeyParameters keyParams) -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()Destroy this key, zeroizing the secret key material it holds.booleanextractKeyShard(int usageCount) Return a key representing a shard of the key space that can be used usageCount times.byte[]longgetIndex()Return the index of the next signature.intReturn the number of levels (L) associated with the key.longReturn the number of usages left for the private key.inthashCode()boolean
-
Constructor Details
-
BCLMSPrivateKey
-
BCLMSPrivateKey
- Throws:
IOException
-
-
Method Details
-
getIndex
public long getIndex()Description copied from interface:LMSPrivateKeyReturn the index of the next signature.- Specified by:
getIndexin interfaceLMSPrivateKey- Returns:
- the index number for the next signature.
-
getUsagesRemaining
public long getUsagesRemaining()Description copied from interface:LMSPrivateKeyReturn the number of usages left for the private key.- Specified by:
getUsagesRemainingin interfaceLMSPrivateKey- Returns:
- the number of times the key can be used before it is exhausted.
-
extractKeyShard
Description copied from interface:LMSPrivateKeyReturn a key representing a shard of the key space that can be used usageCount times.Note: this will use the range [index...index + usageCount) for the current key.
- Specified by:
extractKeyShardin interfaceLMSPrivateKey- Parameters:
usageCount- the number of usages the key should have.- Returns:
- a key based on the current key that can be used usageCount times.
-
getAlgorithm
- Specified by:
getAlgorithmin interfaceKey
-
getFormat
-
getEncoded
public byte[] getEncoded()- Specified by:
getEncodedin interfaceKey
-
equals
-
hashCode
public int hashCode() -
getLevels
public int getLevels()Description copied from interface:LMSKeyReturn the number of levels (L) associated with the key. -
destroy
public void destroy()Destroy this key, zeroizing the secret key material it holds.The master secret of every tree in the hierarchy is zeroized; the key identifiers, indexes, chaining signatures and cached tree nodes are retained, so
getIndex(),getUsagesRemaining()andgetLevels()keep working. After destructionisDestroyed()returns true,getEncoded()andextractKeyShard(int)throwIllegalStateException, the key can no longer be serialized, and a Signature refuses it at initSign. Shards extracted before destruction are independent copies and are unaffected. As the underlyingHSSPrivateKeyParametersobject is destroyed, keys sharing it are invalidated too.- Specified by:
destroyin interfaceDestroyable
-
isDestroyed
public boolean isDestroyed()- Specified by:
isDestroyedin interfaceDestroyable
-