-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancing GCM ByteBuffer Implementation #266
Conversation
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
src/java.base/share/classes/com/sun/crypto/provider/FeedbackCipher.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
src/java.base/share/classes/com/sun/crypto/provider/FeedbackCipher.java
Outdated
Show resolved
Hide resolved
test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java
Outdated
Show resolved
Hide resolved
Pls update the IBM copyrights in the files changed. |
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please also remove all trailing whitespace in any changes.
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
src/java.base/share/classes/com/sun/crypto/provider/FeedbackCipher.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
I think you should use the same author for all commits (eventually squashed?). So far we have two:
|
Checking what testing is resolved and what still fails with this change. |
jenkins test sanity.openjdk zlinux jdknext |
|
Yes, I have a commit for this ready, but I realized that some tests are not passing, so I'm fixing them. Will update with a fix here soon. |
The source code should compile and tests should be passing again |
jenkins test sanity.openjdk zlinux jdknext |
test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java needs to have an IBM copyright added. |
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Show resolved
Hide resolved
I'd prefer that we don't modify the test: that file should be reverted. |
Agreed that solution is preferable. |
com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java is failing.
Also com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20Poly1305ParamTest.java I think is a new problem, probably not related to this PR.
|
I don't think the PR testing is running the correct test material. |
Created a new issue eclipse-openj9/openj9#11689 for the ChaCha20Poly1305ParamTest failure. |
If GCMBufferTest.java continues to be modified, it needs to be validated via grinder. |
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java
Outdated
Show resolved
Hide resolved
I would be good to get this finalized and merged before the code split occurs this weekend. |
Once it is finalized, it needs to be backported to jdk16. |
test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
Note the openjdk tests failing due to this problem have been excluded, and will need to be re-included when this is ready to merge. |
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
closed/src/java.base/share/classes/com/sun/crypto/provider/NativeGaloisCounterMode.java
Outdated
Show resolved
Hide resolved
Please squash and rebase on the head of the openj9 branch. |
Please fix the commit message: the author and committer should be the same. |
* Added functions in NativeGaloisCounterMode in order to support the implementationt cherry-pick bf36981 * Made some changes in existing NativeGaloisCounterMode functions to fix bugs in GCMBufferTest * Separated output length verification into two * Update check condition: this one is set to false in case of GCM since the cipher.update function might return different results based on the mode. Hence, expecting the result can get complicated. * Final check condition: this one is set to true since the total output of GCM encryption is straight forward to predict. Signed-off-by: Samer AL Masri <samasri@ibm.com>
Sorry about that, done. |
Jenkins test sanity,extended plinux jdknext |
Jenkins test sanity.openjdk zlinux jdknext |
Tested the previously failing (and excluded) openjdk tests via grinders, using the PR zlinux build https://ci.eclipse.org/openj9/job/Pipeline_Build_Test_JDKnext_s390x_linux/834/. All passed. test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java com/sun/crypto/provider/Cipher/AEAD/OverlapByteBuffer.java com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java Create PR to un-exclude the tests Created PRs to port this change to jdk16, assuming the current commit is the final one. In draft state until this is confirmed. |
The sanity.openjdk failure is eclipse-openj9/openj9#11930. |
Thanks, @samasri for being persistent with this. |
Fixing OpenJ9's Issue 11390. Specifically, some of the AEAD tests were failing in the jtreg test harness. This PR fixes them by:
NativeGaloisCounterMode
to support processing ByteBuffer input and output.cipher.update
. This is becausecipher.update
doesn't have to return the encrypted input length. In our JDK, thecipher.update
behaves differently depending on whether the machine used does have native crypto or not:cipher.update
processes the input by adding it to a buffer, which will be processed whencipher.doFinal
is called. Hence, thecipher.update
returns zero.cipher.update
returns 16.