Class EciesPrivateKey

  • All Implemented Interfaces:
    PrivateKey

    @Immutable
    public final class EciesPrivateKey
    extends HybridPrivateKey
    Representation of the decryption function for an ECIES hybrid encryption primitive.
    • 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 key
        x25519PrivateKeyBytes - 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 key
        nistPrivateKeyValue - 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: Key
        Returns a Parameters object containing all the information about the key which is not randomly chosen.

        Implementations need to ensure that getParameters().hasIdRequirement() returns true if and only if getIdRequirementOrNull is non-null.

        Overrides:
        getParameters in class HybridPrivateKey
      • equalsKey

        public boolean equalsKey​(Key o)
        Description copied from class: Key
        Returns true if the key is guaranteed to be equal to other.

        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 Key objects should typically not override hashCode (because it could risk leaking key material). Hence, they typically also should not override equals.

        Specified by:
        equalsKey in class Key