All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.pqc.crypto.ntru.NTRUParameters Maven / Gradle / Ivy

Go to download

The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.8 and up. Note: this package includes the NTRU encryption algorithms.

There is a newer version: 1.77
Show newest version
package org.bouncycastle.pqc.crypto.ntru;

import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.pqc.crypto.KEMParameters;
import org.bouncycastle.pqc.math.ntru.parameters.NTRUHPS2048509;
import org.bouncycastle.pqc.math.ntru.parameters.NTRUHPS2048677;
import org.bouncycastle.pqc.math.ntru.parameters.NTRUHPS4096821;
import org.bouncycastle.pqc.math.ntru.parameters.NTRUHRSS701;
import org.bouncycastle.pqc.math.ntru.parameters.NTRUParameterSet;

/**
 * NTRU cipher parameter sets
 */
public class NTRUParameters
    implements KEMParameters
{
    /**
     * NTRU-HPS parameter set with n = 509 and q = 2048.
     */
    public static final NTRUParameters ntruhps2048509 = new NTRUParameters("ntruhps2048509", new NTRUHPS2048509());
    /**
     * NTRU-HPS parameter set with n = 677 and q = 2048.
     */
    public static final NTRUParameters ntruhps2048677 = new NTRUParameters("ntruhps2048677", new NTRUHPS2048677());
    /**
     * NTRU-HPS parameter set with n = 821 and q = 4096.
     */
    public static final NTRUParameters ntruhps4096821 = new NTRUParameters("ntruhps4096821", new NTRUHPS4096821());

    /**
     * NTRU-HRSS parameter set with n = 701.
     */
    public static final NTRUParameters ntruhrss701 = new NTRUParameters("ntruhrss701", new NTRUHRSS701());

    private final String name;
    /**
     * Currently selected parameter set
     */
    final NTRUParameterSet parameterSet;

    private NTRUParameters(String name, NTRUParameterSet parameterSet)
    {
        this.name = name;
        this.parameterSet = parameterSet;
    }

    public String getName()
    {
        return name;
    }

    public int getSessionKeySize()
    {
        return parameterSet.sharedKeyBytes() * 8;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy