You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/09/08 05:49:08 UTC
groovy git commit: GROOVY-8780: Add `sha256` DGM(closes #793)
Repository: groovy
Updated Branches:
refs/heads/master 9638acdd7 -> 6a6e1f0ff
GROOVY-8780: Add `sha256` DGM(closes #793)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/6a6e1f0f
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/6a6e1f0f
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/6a6e1f0f
Branch: refs/heads/master
Commit: 6a6e1f0ff9c810fc4fac977c67bdb789b7a486bf
Parents: 9638acd
Author: Daniel Sun <su...@apache.org>
Authored: Sat Sep 8 13:48:36 2018 +0800
Committer: Daniel Sun <su...@apache.org>
Committed: Sat Sep 8 13:48:36 2018 +0800
----------------------------------------------------------------------
.../groovy/runtime/EncodingGroovyMethods.java | 21 ++++++++++++++++++++
.../runtime/EncodingGroovyMethodsTest.java | 6 ++++++
2 files changed, 27 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/6a6e1f0f/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
index 273fc41..f2ec1e2 100644
--- a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
@@ -46,6 +46,7 @@ public class EncodingGroovyMethods {
private static final char[] T_TABLE_URLSAFE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=".toCharArray();
private static final String CHUNK_SEPARATOR = "\r\n";
private static final String MD5 = "MD5";
+ private static final String SHA_256 = "SHA-256";
/**
* Produce a Writable object which writes the Base64 encoding of the byte array.
@@ -390,6 +391,26 @@ public class EncodingGroovyMethods {
}
/**
+ * Calculate SHA-256 of the CharSequence instance
+ * @return SHA-256 value
+ * @throws NoSuchAlgorithmException if SHA-256 algorithm not found
+ * @since 2.5.3
+ */
+ public static String sha256(CharSequence self) throws NoSuchAlgorithmException {
+ return digest(self, SHA_256);
+ }
+
+ /**
+ * Calculate SHA-256 of the byte array
+ * @return SHA-256 value
+ * @throws NoSuchAlgorithmException if SHA-256 algorithm not found
+ * @since 2.5.3
+ */
+ public static String sha256(byte[] self) throws NoSuchAlgorithmException {
+ return digest(self, SHA_256);
+ }
+
+ /**
* digest the CharSequence instance
* @param algorithm the name of the algorithm requested, e.g. MD5, SHA-1, SHA-256, etc.
* @return digested value
http://git-wip-us.apache.org/repos/asf/groovy/blob/6a6e1f0f/src/test/org/codehaus/groovy/runtime/EncodingGroovyMethodsTest.java
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/runtime/EncodingGroovyMethodsTest.java b/src/test/org/codehaus/groovy/runtime/EncodingGroovyMethodsTest.java
index 20c0897..527399c 100644
--- a/src/test/org/codehaus/groovy/runtime/EncodingGroovyMethodsTest.java
+++ b/src/test/org/codehaus/groovy/runtime/EncodingGroovyMethodsTest.java
@@ -29,6 +29,12 @@ public class EncodingGroovyMethodsTest {
}
@Test
+ public void sha256() throws Exception {
+ Assert.assertEquals("6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090", EncodingGroovyMethods.sha256("abc123"));
+ Assert.assertEquals("6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090", EncodingGroovyMethods.sha256("abc123".getBytes("UTF-8")));
+ }
+
+ @Test
public void digest() throws Exception {
Assert.assertEquals("e99a18c428cb38d5f260853678922e03", EncodingGroovyMethods.digest("abc123", "MD5"));
Assert.assertEquals("e99a18c428cb38d5f260853678922e03", EncodingGroovyMethods.digest("abc123".getBytes("UTF-8"), "MD5"));