Skip to content

Commit eb328d2

Browse files
Updated digital signature algorithm to SHA256withRSA (#2)
1 parent a2ae684 commit eb328d2

File tree

5 files changed

+12
-6
lines changed

5 files changed

+12
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ String signatureBase64 = DigitalSignatires.encodeToBase64(byte[] bytes);
4040
To allow users to sign their data via CLI there is an executable JAR:
4141
```bash
4242
usage: java -jar digital-signatures-cli-<version>-all.jar -d <DATA> -k <PATH>
43-
Calculates SHA1 with RSA signature in Base64 encoding for provided data
43+
Calculates SHA256 with RSA signature in Base64 encoding for provided data
4444
-d,--data-to-sign <DATA> String containing data to sign
4545
-k,--private-key-file <PATH> Path to file containing RSA private key
4646
```

digital-signatures-cli/src/main/java/com/transferwise/digitalsignatures/cli/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
class Main {
1616

1717
private static final String CLI_UTILITY_NAME = "java -jar digital-signatures-cli-<version>-all.jar";
18-
private static final String CLI_HELP_HEADER = "Calculates SHA1 with RSA signature in Base64 encoding (RFC 4648) for provided data";
18+
private static final String CLI_HELP_HEADER = "Calculates SHA256 with RSA signature in Base64 encoding (RFC 4648) for provided data";
1919

2020
public static void main(String[] args) {
2121
Option privateKeyFilePathOption = Option.builder("k")

digital-signatures-cli/src/test/java/com/transferwise/digitalsignatures/cli/MainTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
public class MainTest {
2020

2121
private static final String DATA_TO_SIGN = "65a31b86-aa2e-47fd-a7a4-3710437ba270";
22-
private static final String SIGNATURE = "oMbriRqpykbUnoL2sIX5xCO/yhrpZFd4TDu2lWdbcHkfxoYHQIvjdm/Px9SBgO5Lc58qjPkmeJA4z8B8spOVaxLRienkzvqrT0I11OFH7jJkoMu2g8bxPe7hmnRDdTB8cLZyFYGmlYjsr3vxemTUWSYYXdrys5Dh3LuOzWZmuYQ3bOwsBPm2sl7K39QM2KqXWckyqg9xpguWIGWzO86aKc/OboWqompVYKztLtdzMwAT5WQ5tPH+AA/lpiV3VG8J9TKTYpUzcrsRjUIelY+jznOkrFtqyyQsZ6l/G7yFXYTaA55ARc+k7CJExiw4mFX8wgPUHrGt289170HS+UJZDw==";
22+
private static final String SIGNATURE = "1JnHvXd24R99jZFl5KzJer1iMFGIdrGRmu09h7QkGzo5kgk3cLHdDesitNjK131lmpgAEwnI" +
23+
"99jtyfJfiMjFZV4VqSAmr68W12r3Jc4ACE17WNa7hGgLC7Gw+m70x9UX5dgv6ws02VlIe9i44iGJ6fN57Piy5LBitxWkAjEEMNjmqO6G" +
24+
"dnBlxNuSc9m+eImG91nqXa6BLNFFAPD3FzaEbqW8Ob/l8ayd9xXosTNMz0ywsV/l/zthra/7olAvRLqCrMtzI9ltC7kd40xWNesehLxf" +
25+
"QIIoAUiDF9iRCzBavXR6O7jUf56QES6ScjQ43a62V0JIdbUDSdRJPr+zesPQug==";
2326

2427
private static final long OPENSSL_TEST_TIMEOUT_MILLISECONDS = 1000;
2528

@@ -56,7 +59,7 @@ public void signatureIsIdenticalToGeneratedByOpenSSL() throws InterruptedExcepti
5659

5760
Process process;
5861
try {
59-
String command = String.format("printf '%s' | openssl sha1 -sign %s | base64 -b 0", DATA_TO_SIGN, testPrivateKeyFilePath);
62+
String command = String.format("printf '%s' | openssl sha256 -sign %s | base64 -b 0", DATA_TO_SIGN, testPrivateKeyFilePath);
6063
process = new ProcessBuilder("/bin/sh", "-c", command).start();
6164
} catch (Exception e) {
6265
assumeNoException(e);

digital-signatures/src/main/java/com/transferwise/digitalsignatures/DigitalSignatures.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class DigitalSignatures {
2929
/**
3030
* Default signature algorithm.
3131
*/
32-
public static final String SIGNATURE_ALGORITHM = "SHA1withRSA";
32+
public static final String SIGNATURE_ALGORITHM = "SHA256withRSA";
3333

3434
static {
3535
Security.addProvider(new BouncyCastleProvider());

digital-signatures/src/test/java/com/transferwise/digitalsignatures/DigitalSignaturesTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ public class DigitalSignaturesTest {
4040
@Test
4141
public void sign() throws IOException, GeneralSecurityException {
4242
String dataToSign = "65a31b86-aa2e-47fd-a7a4-3710437ba270";
43-
String expectedSignatureBase64 = "oMbriRqpykbUnoL2sIX5xCO/yhrpZFd4TDu2lWdbcHkfxoYHQIvjdm/Px9SBgO5Lc58qjPkmeJA4z8B8spOVaxLRienkzvqrT0I11OFH7jJkoMu2g8bxPe7hmnRDdTB8cLZyFYGmlYjsr3vxemTUWSYYXdrys5Dh3LuOzWZmuYQ3bOwsBPm2sl7K39QM2KqXWckyqg9xpguWIGWzO86aKc/OboWqompVYKztLtdzMwAT5WQ5tPH+AA/lpiV3VG8J9TKTYpUzcrsRjUIelY+jznOkrFtqyyQsZ6l/G7yFXYTaA55ARc+k7CJExiw4mFX8wgPUHrGt289170HS+UJZDw==";
43+
String expectedSignatureBase64 = "1JnHvXd24R99jZFl5KzJer1iMFGIdrGRmu09h7QkGzo5kgk3cLHdDesitNjK131lmpgAEwnI99j" +
44+
"tyfJfiMjFZV4VqSAmr68W12r3Jc4ACE17WNa7hGgLC7Gw+m70x9UX5dgv6ws02VlIe9i44iGJ6fN57Piy5LBitxWkAjEEMNjmqO6" +
45+
"GdnBlxNuSc9m+eImG91nqXa6BLNFFAPD3FzaEbqW8Ob/l8ayd9xXosTNMz0ywsV/l/zthra/7olAvRLqCrMtzI9ltC7kd40xWNes" +
46+
"ehLxfQIIoAUiDF9iRCzBavXR6O7jUf56QES6ScjQ43a62V0JIdbUDSdRJPr+zesPQug==";
4447

4548
byte[] signature = DigitalSignatures.sign(PRIVATE_KEY, dataToSign.getBytes());
4649

0 commit comments

Comments
 (0)