I submitted this issue earlier today and I guess after editing it several times to fix formatting so that it was easier for you to read someone decided to flag my account and delete the issue? I'm not a bot. This is a real bug with the build. And hopefully my formatting is correct the first try.
We have an application that was working properly against tink 1.0. We're trying to migrate to the snapshots of 1.1 (for streaming aead) in anticipation of the 1.1 release and we're running into trouble with our old code.
When I kick off tests they now fail with:
crypto.SignedPrincipalTests > crossedValidityTimesInvalidatePrincipal FAILED java.lang.NoClassDefFoundError: com/google/crypto/tink/subtle/Ed25519Constants at com.google.crypto.tink.subtle.Ed25519.select(Ed25519.java:545) at com.google.crypto.tink.subtle.Ed25519.scalarMultWithBase(Ed25519.java:601) at com.google.crypto.tink.subtle.Ed25519.scalarMultWithBaseToBytes(Ed25519.java:638) at com.google.crypto.tink.subtle.Ed25519Sign$KeyPair.newKeyPair(Ed25519Sign.java:88) at com.google.crypto.tink.signature.Ed25519PrivateKeyManager.newKey(Ed25519PrivateKeyManager.java:187) at com.google.crypto.tink.signature.Ed25519PrivateKeyManager.newKeyData(Ed25519PrivateKeyManager.java:78) at com.google.crypto.tink.Registry.newKeyData(Registry.java:243) at com.google.crypto.tink.KeysetManager.newKey(KeysetManager.java:215) at com.google.crypto.tink.KeysetManager.rotate(KeysetManager.java:66) at com.google.crypto.tink.KeysetHandle.generateNew(KeysetHandle.java:73)
I've truncated the stacktrace where it enters my code. The line of code that triggers this is simply:
KeysetHandle.generateNew(SignatureKeyTemplates.ED25519);
While poking around trying to understand this more it appears that the Ed25519Constants.class is simply missing from the build?
$ unzip -ll tink-HEAD-SNAPSHOT.jar | grep Ed255 | awk '{print $8}' com/google/crypto/tink/subtle/Ed25519Verify.class com/google/crypto/tink/subtle/Ed25519Sign.class com/google/crypto/tink/subtle/Ed25519Sign$KeyPair.class com/google/crypto/tink/subtle/Ed25519.class com/google/crypto/tink/subtle/Ed25519$XYZT.class com/google/crypto/tink/subtle/Ed25519$XYZ.class com/google/crypto/tink/subtle/Ed25519$PartialXYZT.class com/google/crypto/tink/subtle/Ed25519$CachedXYZT.class com/google/crypto/tink/subtle/Ed25519$CachedXYT.class com/google/crypto/tink/signature/Ed25519PublicKeyManager.class com/google/crypto/tink/signature/Ed25519PrivateKeyManager.class com/google/crypto/tink/proto/Ed25519PublicKeyOrBuilder.class com/google/crypto/tink/proto/Ed25519PublicKey.class com/google/crypto/tink/proto/Ed25519PublicKey$Builder.class com/google/crypto/tink/proto/Ed25519PublicKey$1.class com/google/crypto/tink/proto/Ed25519PrivateKeyOrBuilder.class com/google/crypto/tink/proto/Ed25519PrivateKey.class com/google/crypto/tink/proto/Ed25519PrivateKey$Builder.class com/google/crypto/tink/proto/Ed25519PrivateKey$1.class com/google/crypto/tink/proto/Ed25519.class com/google/crypto/tink/proto/Ed25519$1.class
This issue is present in the build on March 5th and also the build on Friday, March 9th (the most current as of this moment).