Bouncy Castle Cryptography Library 1.86

org.bouncycastle.pqc.crypto.ntruplus
Class NTRUPlusKEMExtractor

java.lang.Object
  extended byorg.bouncycastle.pqc.crypto.ntruplus.NTRUPlusKEMExtractor
All Implemented Interfaces:
EncapsulatedSecretExtractor

public class NTRUPlusKEMExtractor
extends java.lang.Object
implements EncapsulatedSecretExtractor

NTRU+ decapsulation.

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 Summary
NTRUPlusKEMExtractor(NTRUPlusPrivateKeyParameters privateKey)
           
 
Method Summary
 byte[] extractSecret(byte[] encapsulation)
          Extract the secret based on the recipient private key.
 int getEncapsulationLength()
          Return the length in bytes of the encapsulation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NTRUPlusKEMExtractor

public NTRUPlusKEMExtractor(NTRUPlusPrivateKeyParameters privateKey)
Method Detail

extractSecret

public byte[] extractSecret(byte[] encapsulation)
Description copied from interface: EncapsulatedSecretExtractor
Extract the secret based on the recipient private key.

Specified by:
extractSecret in interface EncapsulatedSecretExtractor
Parameters:
encapsulation - the encapsulated secret.

getEncapsulationLength

public int getEncapsulationLength()
Description copied from interface: EncapsulatedSecretExtractor
Return the length in bytes of the encapsulation.

Specified by:
getEncapsulationLength in interface EncapsulatedSecretExtractor
Returns:
length in bytes of an encapsulation for this parameter set.

Bouncy Castle Cryptography Library 1.86