@Immutable public final class EciesPublicKey extends HybridPublicKey
| Modifier and Type | Method and Description |
|---|---|
static EciesPublicKey |
createForCurveX25519(EciesParameters parameters,
Bytes publicPointBytes,
Integer idRequirement)
Creates a new ECIES public key using Curve25519.
|
static EciesPublicKey |
createForNistCurve(EciesParameters parameters,
ECPoint publicPoint,
Integer idRequirement)
Creates a new ECIES public key using a NIST Curve.
|
boolean |
equalsKey(Key o)
Returns true if the key is guaranteed to be equal to
other. |
Integer |
getIdRequirementOrNull()
Returns null if this key has no id requirement, otherwise the required id.
|
ECPoint |
getNistCurvePoint()
Returns the underlying public point if the curve is a NIST curve.
|
Bytes |
getOutputPrefix()
Returns a
Bytes instance, which is prefixed to every ciphertext. |
EciesParameters |
getParameters()
Returns a
Parameters object containing all the information about the key which is not
randomly chosen. |
Bytes |
getX25519CurvePointBytes()
Returns the underlying public point as EC Point in case the curve is a NIST curve.
|
public static EciesPublicKey createForCurveX25519(EciesParameters parameters, Bytes publicPointBytes, @Nullable Integer idRequirement) throws GeneralSecurityException
parameters - ECIES parameters for the public keypublicPointBytes - public point coordinates in bytes.idRequirement - key id requirement, which must be null for NO_PREFIX variant and
non-null for all other variantsGeneralSecurityExceptionpublic static EciesPublicKey createForNistCurve(EciesParameters parameters, ECPoint publicPoint, @Nullable Integer idRequirement) throws GeneralSecurityException
parameters - ECIES parameters for the public keypublicPoint - public point as a ECPoint.idRequirement - key id requirement, which must be null for NO_PREFIX variant and
non-null for all other variantsGeneralSecurityException@Nullable public ECPoint getNistCurvePoint()
Returns null if the curve used for this key is not a NIST curve.
@Nullable public Bytes getX25519CurvePointBytes()
Returns null for X25519 curves.
public Bytes getOutputPrefix()
HybridPublicKeyBytes instance, which is prefixed to every ciphertext.getOutputPrefix in class HybridPublicKeypublic EciesParameters getParameters()
KeyParameters 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.
getParameters in class HybridPublicKey@Nullable public Integer getIdRequirementOrNull()
KeySome keys, when they are in a keyset, are required to have a certain ID to work properly.
This comes from the fact that Tink in some cases prefixes ciphertexts or signatures with the
string 0x01<id>, where the ID is encoded in big endian (see the documentation of the
key type for details), in which case the key requires a certain ID.
getIdRequirementOrNull in class Keypublic boolean equalsKey(Key o)
Keyother.
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.