Class BCDHPrivateKey
- java.lang.Object
-
- org.bouncycastle.jcajce.provider.asymmetric.dh.BCDHPrivateKey
-
- All Implemented Interfaces:
java.io.Serializable,java.security.Key,java.security.PrivateKey,javax.crypto.interfaces.DHKey,javax.crypto.interfaces.DHPrivateKey,javax.security.auth.Destroyable,PKCS12BagAttributeCarrier
public class BCDHPrivateKey extends java.lang.Object implements javax.crypto.interfaces.DHPrivateKey, javax.security.auth.Destroyable, PKCS12BagAttributeCarrier
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBCDHPrivateKey()BCDHPrivateKey(PrivateKeyInfo info)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()Destroy this key, clearing the key material it holds.booleanequals(java.lang.Object o)java.lang.StringgetAlgorithm()ASN1EncodablegetBagAttribute(ASN1ObjectIdentifier oid)java.util.EnumerationgetBagAttributeKeys()byte[]getEncoded()Return a PKCS8 representation of the key.java.lang.StringgetFormat()return the encoding format we produce in getEncoded().javax.crypto.spec.DHParameterSpecgetParams()java.math.BigIntegergetX()booleanhasFriendlyName()inthashCode()booleanisDestroyed()voidsetBagAttribute(ASN1ObjectIdentifier oid, ASN1Encodable attribute)voidsetFriendlyName(java.lang.String friendlyName)java.lang.StringtoString()
-
-
-
Constructor Detail
-
BCDHPrivateKey
protected BCDHPrivateKey()
-
BCDHPrivateKey
public BCDHPrivateKey(PrivateKeyInfo info) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
getAlgorithm
public java.lang.String getAlgorithm()
- Specified by:
getAlgorithmin interfacejava.security.Key
-
getFormat
public java.lang.String getFormat()
return the encoding format we produce in getEncoded().- Specified by:
getFormatin interfacejava.security.Key- Returns:
- the string "PKCS#8"
-
getEncoded
public byte[] getEncoded()
Return a PKCS8 representation of the key. The sequence returned represents a full PrivateKeyInfo object.- Specified by:
getEncodedin interfacejava.security.Key- Returns:
- a PKCS8 representation of the key.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getParams
public javax.crypto.spec.DHParameterSpec getParams()
- Specified by:
getParamsin interfacejavax.crypto.interfaces.DHKey
-
getX
public java.math.BigInteger getX()
- Specified by:
getXin interfacejavax.crypto.interfaces.DHPrivateKey
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
destroy
public void destroy()
Destroy this key, clearing the key material it holds.The private value is held as a
BigInteger, which is immutable and so cannot be zeroized in place - destruction drops the internal reference so the value becomes unreachable (cleared on garbage collection). A PKCS#8 PrivateKeyInfo retained from decoding is dropped with it, and the underlyingDHPrivateKeyParametersobject, where one is held, is destroyed as well, so keys sharing it are invalidated too. The (public) domain parameters are retained. After destructionisDestroyed()returns true, the secret-bearing accessors (getEncoded()andgetX()) throwIllegalStateException, the key can no longer be serialized, and it is equal only to itself;hashCode()retains its pre-destruction value.- Specified by:
destroyin interfacejavax.security.auth.Destroyable
-
isDestroyed
public boolean isDestroyed()
- Specified by:
isDestroyedin interfacejavax.security.auth.Destroyable
-
setBagAttribute
public void setBagAttribute(ASN1ObjectIdentifier oid, ASN1Encodable attribute)
- Specified by:
setBagAttributein interfacePKCS12BagAttributeCarrier
-
getBagAttribute
public ASN1Encodable getBagAttribute(ASN1ObjectIdentifier oid)
- Specified by:
getBagAttributein interfacePKCS12BagAttributeCarrier
-
getBagAttributeKeys
public java.util.Enumeration getBagAttributeKeys()
- Specified by:
getBagAttributeKeysin interfacePKCS12BagAttributeCarrier
-
hasFriendlyName
public boolean hasFriendlyName()
- Specified by:
hasFriendlyNamein interfacePKCS12BagAttributeCarrier
-
setFriendlyName
public void setFriendlyName(java.lang.String friendlyName)
- Specified by:
setFriendlyNamein interfacePKCS12BagAttributeCarrier
-
-