Created
October 27, 2017 08:23
-
-
Save teruteru128/7a35598167a28055abd243dec8373dd4 to your computer and use it in GitHub Desktop.
Reporting ArrayIndexOutOfBoundsException
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package test.cipher.pqc.sample005; | |
import java.security.KeyPair; | |
import java.security.KeyPairGenerator; | |
import java.security.PrivateKey; | |
import java.security.Provider; | |
import java.security.PublicKey; | |
import java.security.SecureRandom; | |
import java.security.Security; | |
import java.util.Arrays; | |
import javax.crypto.KeyAgreement; | |
import org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider; | |
public class Main { | |
public static void main(String[] args) throws Exception { | |
SecureRandom random = new SecureRandom(); | |
Provider providerPQC = Security.getProvider("BCPQC"); | |
if (providerPQC == null) { | |
Security.addProvider(providerPQC = new BouncyCastlePQCProvider()); | |
} | |
KeyPairGenerator generator = KeyPairGenerator.getInstance("NH"); | |
generator.initialize(1024, random); | |
KeyPair pair1 = generator.generateKeyPair(); | |
KeyPair pair2 = generator.generateKeyPair(); | |
PublicKey publicKey1 = pair1.getPublic(); | |
PrivateKey privateKey1 = pair1.getPrivate(); | |
PublicKey publicKey2 = pair2.getPublic(); | |
PrivateKey privateKey2 = pair2.getPrivate(); | |
KeyAgreement agreement = KeyAgreement.getInstance("NH"); | |
agreement.init(privateKey1, random); | |
agreement.doPhase(publicKey2, true); | |
byte[] secret1 = agreement.generateSecret(); | |
agreement.init(privateKey2, random); | |
agreement.doPhase(publicKey1, true); | |
byte[] secret2 = agreement.generateSecret(); | |
if (Arrays.equals(secret1, secret2)) { | |
System.out.println("OK"); | |
} else { | |
System.out.println("NG"); | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1824 | |
at org.bouncycastle.pqc.crypto.newhope.NewHope.decodeB(Unknown Source) | |
at org.bouncycastle.pqc.crypto.newhope.NewHope.sharedA(Unknown Source) | |
at org.bouncycastle.pqc.crypto.newhope.NHAgreement.calculateAgreement(Unknown Source) | |
at org.bouncycastle.pqc.jcajce.provider.newhope.KeyAgreementSpi.engineDoPhase(Unknown Source) | |
at javax.crypto.KeyAgreement.doPhase(KeyAgreement.java:567) | |
at test.cipher.pqc.sample005.Main.main(Main.java:40) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment