public class NTRUPlusKEMExtractor extends java.lang.Object implements EncapsulatedSecretExtractor
Not thread safe. The NTRUPlusEngine built here keeps one SHAKE instance in a field, so two threads sharing an extractor interleave its absorb and squeeze phases: the secrets they recover do not match the sender's, and an IllegalStateException from the digest is also possible. Give each thread its own extractor - construction is cheap, roughly a thousandth of a decapsulation. The KEM.Decapsulator that javax.crypto.KEM builds does exactly that, since that API requires decapsulate to be safe for concurrent use.
| Constructor and Description |
|---|
NTRUPlusKEMExtractor(NTRUPlusPrivateKeyParameters privateKey) |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
extractSecret(byte[] encapsulation)
Extract the secret based on the recipient private key.
|
int |
getEncapsulationLength()
Return the length in bytes of the encapsulation.
|
public NTRUPlusKEMExtractor(NTRUPlusPrivateKeyParameters privateKey)
public byte[] extractSecret(byte[] encapsulation)
EncapsulatedSecretExtractorextractSecret in interface EncapsulatedSecretExtractorencapsulation - the encapsulated secret.public int getEncapsulationLength()
EncapsulatedSecretExtractorgetEncapsulationLength in interface EncapsulatedSecretExtractor