matthiaszimmermann / bitcoin-paper-wallet

Bitcoin Paper Wallet Generator
Apache License 2.0
7 stars 2 forks source link

tests are failing #1

Closed ghost closed 6 years ago

ghost commented 6 years ago
testWalletFromJson(org.matthiaszimmermann.bitcoin.pwg.WalletTest)  Time elapsed: 0.159 sec  <<< ERROR!
java.security.InvalidKeyException: Illegal key size
    at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)
    at javax.crypto.Cipher.implInit(Cipher.java:805)
    at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
    at javax.crypto.Cipher.init(Cipher.java:1396)
    at javax.crypto.Cipher.init(Cipher.java:1327)
    at org.matthiaszimmermann.bitcoin.pwg.AesUtility.decrypt(AesUtility.java:89)
    at org.matthiaszimmermann.bitcoin.pwg.Wallet.<init>(Wallet.java:137)
    at org.matthiaszimmermann.bitcoin.pwg.WalletFactory.restoreWalletFromJSON(WalletFactory.java:245)
    at org.matthiaszimmermann.bitcoin.pwg.WalletTest.testWalletFromJson(WalletTest.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Results :

Failed tests:   verifyWalletHappyCase(org.matthiaszimmermann.bitcoin.pwg.ApplicationTest): failed to verify paper wallet /var/folders/s1/gn74x_xx4b18_7qgpn0tkwy40000gn/T/wallet_verify_ok.json: expected message 'WALLET VERIFICATION OK ...', actual message: 'WALLET VERIFICATION ERROR Illegal key size'
  createAndVerifyWalletHappyCase(org.matthiaszimmermann.bitcoin.pwg.ApplicationTest): failed to verify paper wallet /var/folders/s1/gn74x_xx4b18_7qgpn0tkwy40000gn/T/1MExTssGDEsZoQBHBwefQmvEMACWaQoHJo.json: expected message 'WALLET VERIFICATION OK ...', actual message: 'WALLET VERIFICATION ERROR wallet file has no seed attribute /var/folders/s1/gn74x_xx4b18_7qgpn0tkwy40000gn/T/1MExTssGDEsZoQBHBwefQmvEMACWaQoHJo.json'
  verifyWalletWithMnemonic(org.matthiaszimmermann.bitcoin.pwg.ApplicationTest): failed to verify paper wallet /var/folders/s1/gn74x_xx4b18_7qgpn0tkwy40000gn/T/wallet_verify_ok.json: expected message 'WALLET VERIFICATION OK ...', actual message: 'WALLET VERIFICATION ERROR Illegal key size'

Tests in error:
  testEncoding(org.matthiaszimmermann.bitcoin.pwg.AesUtilityTest): Illegal key size or default parameters
  testRepeatedEncodings(org.matthiaszimmermann.bitcoin.pwg.AesUtilityTest): Illegal key size or default parameters
  testDecoding(org.matthiaszimmermann.bitcoin.pwg.AesUtilityTest): Illegal key size
  testWalletFromJson(org.matthiaszimmermann.bitcoin.pwg.WalletTest): Illegal key size

Running with mvn package -DskipTests seems to work fine.

matthiaszimmermann commented 6 years ago

thanks for mentioning. if running AesUtilityTest results in a "Illegal key size or default parameters" exception this usually means that your java installation does not have the necessary unilimited key strength support that is required to run aes with a 256 key.

enabling unlimited key strength

  1. change to folder jre/lib/security you should find the subfolder policy/unlimited.
  2. from there copy the jar files local_policy.jar and US_export_policy.jar to your jre/lib/security.
  3. rerun the unit tests and verify that the reported exceptions are gone.

revert the policy change

  1. delete the two policy jar files in your jre/lib/security folder

please let me know if this solved the issue for you. tx

matthiaszimmermann commented 6 years ago

no feedback -> close bug

ghost commented 6 years ago

@matthiaszimmermann: thanks for the clarification. With latest master all tests are passing without having to change anything in the jre.