org.bouncycastle.pqc.crypto.crystals.kyber.KyberKEMExtractor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of polaris-all Show documentation
Show all versions of polaris-all Show documentation
All in one project for polaris-java
package org.bouncycastle.pqc.crypto.crystals.kyber;
import org.bouncycastle.crypto.EncapsulatedSecretExtractor;
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
public class KyberKEMExtractor
implements EncapsulatedSecretExtractor
{
private KyberEngine engine;
private KyberPrivateKeyParameters key;
public KyberKEMExtractor(KyberPrivateKeyParameters privParams)
{
this.key = privParams;
initCipher(privParams);
}
private void initCipher(AsymmetricKeyParameter recipientKey)
{
KyberPrivateKeyParameters key = (KyberPrivateKeyParameters)recipientKey;
engine = key.getParameters().getEngine();
}
@Override
public byte[] extractSecret(byte[] encapsulation)
{
// Decryption
byte[] sharedSecret = engine.kemDecrypt(encapsulation, key.getEncoded());
return sharedSecret;
}
public int getEncapsulationLength()
{
return engine.getCryptoCipherTextBytes();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy