Package com.google.crypto.tink.hybrid
Class EciesPrivateKey
- java.lang.Object
-
- com.google.crypto.tink.Key
-
- com.google.crypto.tink.hybrid.HybridPrivateKey
-
- com.google.crypto.tink.hybrid.EciesPrivateKey
-
- All Implemented Interfaces:
PrivateKey
@Immutable public final class EciesPrivateKey extends HybridPrivateKey
Representation of the decryption function for an ECIES hybrid encryption primitive.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static EciesPrivateKeycreateForCurveX25519(EciesPublicKey publicKey, SecretBytes x25519PrivateKeyBytes)Creates a new ECIES private key using Curve25519.static EciesPrivateKeycreateForNistCurve(EciesPublicKey publicKey, SecretBigInteger nistPrivateKeyValue)Creates a new ECIES private key using NIST Curves.booleanequalsKey(Key o)Returns true if the key is guaranteed to be equal toother.SecretBigIntegergetNistPrivateKeyValue()EciesParametersgetParameters()Returns aParametersobject containing all the information about the key which is not randomly chosen.EciesPublicKeygetPublicKey()SecretBytesgetX25519PrivateKeyBytes()-
Methods inherited from class com.google.crypto.tink.hybrid.HybridPrivateKey
getIdRequirementOrNull, getOutputPrefix
-
-
-
-
Method Detail
-
createForCurveX25519
public static EciesPrivateKey createForCurveX25519(EciesPublicKey publicKey, SecretBytes x25519PrivateKeyBytes) throws java.security.GeneralSecurityException
Creates a new ECIES private key using Curve25519.- Parameters:
publicKey- Corresponding ECIES public key for this private keyx25519PrivateKeyBytes- private key bytes- Throws:
java.security.GeneralSecurityException
-
createForNistCurve
public static EciesPrivateKey createForNistCurve(EciesPublicKey publicKey, SecretBigInteger nistPrivateKeyValue) throws java.security.GeneralSecurityException
Creates a new ECIES private key using NIST Curves.- Parameters:
publicKey- Corresponding ECIES public key for this private keynistPrivateKeyValue- private big integer value in bigendian representation- Throws:
java.security.GeneralSecurityException
-
getX25519PrivateKeyBytes
@Nullable public SecretBytes getX25519PrivateKeyBytes()
-
getNistPrivateKeyValue
@Nullable public SecretBigInteger getNistPrivateKeyValue()
-
getParameters
public EciesParameters getParameters()
Description copied from class:KeyReturns aParametersobject containing all the information about the key which is not randomly chosen.Implementations need to ensure that
getParameters().hasIdRequirement()returns true if and only ifgetIdRequirementOrNullis non-null.- Overrides:
getParametersin classHybridPrivateKey
-
getPublicKey
public EciesPublicKey getPublicKey()
- Specified by:
getPublicKeyin interfacePrivateKey- Specified by:
getPublicKeyin classHybridPrivateKey
-
equalsKey
public boolean equalsKey(Key o)
Description copied from class:KeyReturns true if the key is guaranteed to be equal toother.Implementations are required to do this in constant time.
Note: this is allowed to return false even if two keys are guaranteed to represent the same function, but are represented differently. For example, a key is allowed to internally store the number of zero-bytes used as padding when a large number is represented as a byte array, and use this in the comparison.
Note: Tink
Keyobjects should typically not overridehashCode(because it could risk leaking key material). Hence, they typically also should not overrideequals.
-
-