| package org.bouncycastle.pqc.jcajce.provider; |
| |
| import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; |
| import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider; |
| import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter; |
| import org.bouncycastle.pqc.asn1.PQCObjectIdentifiers; |
| import org.bouncycastle.pqc.jcajce.provider.sphincs.Sphincs256KeyFactorySpi; |
| |
| public class SPHINCS |
| { |
| private static final String PREFIX = "org.bouncycastle.pqc.jcajce.provider" + ".sphincs."; |
| |
| public static class Mappings |
| extends AsymmetricAlgorithmProvider |
| { |
| public Mappings() |
| { |
| } |
| |
| public void configure(ConfigurableProvider provider) |
| { |
| provider.addAlgorithm("KeyFactory.SPHINCS256", PREFIX + "Sphincs256KeyFactorySpi"); |
| provider.addAlgorithm("KeyPairGenerator.SPHINCS256", PREFIX + "Sphincs256KeyPairGeneratorSpi"); |
| |
| addSignatureAlgorithm(provider, "SHA512", "SPHINCS256", PREFIX + "SignatureSpi$withSha512", PQCObjectIdentifiers.sphincs256_with_SHA512); |
| addSignatureAlgorithm(provider, "SHA3-512", "SPHINCS256", PREFIX + "SignatureSpi$withSha3_512", PQCObjectIdentifiers.sphincs256_with_SHA3_512); |
| |
| AsymmetricKeyInfoConverter keyFact = new Sphincs256KeyFactorySpi(); |
| |
| registerOid(provider, PQCObjectIdentifiers.sphincs256, "SPHINCS256", keyFact); |
| registerOidAlgorithmParameters(provider, PQCObjectIdentifiers.sphincs256, "SPHINCS256"); |
| } |
| } |
| } |