From 2db2bc932897adde84437498680c43e4e4e4e3bd Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Wed, 16 Jul 2014 14:52:37 +0000
Subject: [PATCH] #0 feature - Moved pubblic key file to jar, new version 0.9.4
---
src/main/java/net/curisit/securis/utils/SignatureHelper.java | 45 +++++++++++++++++++++++++++++++++------------
1 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/src/main/java/net/curisit/securis/utils/SignatureHelper.java b/src/main/java/net/curisit/securis/utils/SignatureHelper.java
index 2904f20..41d41e5 100644
--- a/src/main/java/net/curisit/securis/utils/SignatureHelper.java
+++ b/src/main/java/net/curisit/securis/utils/SignatureHelper.java
@@ -19,6 +19,7 @@
import net.curisit.securis.beans.LicenseBean;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.net.util.Base64;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -79,29 +80,48 @@
}
+ private static final String DEFAULT_PUB_KEY_RESOURCE = "/securis_key.pub";
+
private PublicKey generatePublicKey() throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
- return generatePublicKey(new File(Params.get(Params.KEYS.PUBLIC_KEY_FILE, System.getenv("SECURIS_PUBLIC_KEY_FILE"))));
+ String pubKeyFilePath = System.getenv("SECURIS_PUBLIC_KEY_FILE");
+ if (pubKeyFilePath == null)
+ pubKeyFilePath = Params.get(Params.KEYS.PUBLIC_KEY_FILE);
+ String pubKeyBase64 = null;
+ if (pubKeyFilePath != null) {
+ File pubKeyFile = new File(pubKeyFilePath);
+ if (pubKeyFile.exists()) {
+ pubKeyBase64 = FileUtils.readFileToString(pubKeyFile);
+ }
+ }
+ if (pubKeyBase64 == null) {
+ pubKeyBase64 = IOUtils.toString(this.getClass().getResourceAsStream(DEFAULT_PUB_KEY_RESOURCE), "utf-8");
+ }
+ return generatePublicKey(pubKeyBase64);
}
- private PublicKey generatePublicKey(File publicKeyFile) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
- String pubKeyBase64 = FileUtils.readFileToString(publicKeyFile);
- int from = pubKeyBase64.indexOf('\n');
- int to = pubKeyBase64.indexOf("-----END", from);
- pubKeyBase64 = pubKeyBase64.substring(from, to);
-
+ private PublicKey generatePublicKey(String pubKeyBase64) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
+ if (pubKeyBase64.startsWith("-----BEGIN")) {
+ int from = pubKeyBase64.indexOf('\n');
+ int to = pubKeyBase64.indexOf("-----END", from);
+ pubKeyBase64 = pubKeyBase64.substring(from, to);
+ }
KeyFactory keyFactory = KeyFactory.getInstance(DEFAULT_ALGORITHM);
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(pubKeyBase64));
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
- log.debug("Public key read sucessfully from file: {}", publicKeyFile.getAbsolutePath());
return publicKey;
+ }
+
+ private PublicKey generatePublicKey(File pubKeyFile) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
+ return generatePublicKey(FileUtils.readFileToString(pubKeyFile));
}
public PrivateKey generatePrivateKey(File privateKeyFile) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
String privKeyBase64 = FileUtils.readFileToString(privateKeyFile);
- int from = privKeyBase64.indexOf('\n');
- int to = privKeyBase64.indexOf("-----END", from);
- privKeyBase64 = privKeyBase64.substring(from, to);
-
+ if (privKeyBase64.startsWith("-----BEGIN")) {
+ int from = privKeyBase64.indexOf('\n');
+ int to = privKeyBase64.indexOf("-----END", from);
+ privKeyBase64 = privKeyBase64.substring(from, to);
+ }
KeyFactory keyFactory = KeyFactory.getInstance(DEFAULT_ALGORITHM);
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(privKeyBase64));
PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
@@ -123,4 +143,5 @@
{ 64, -31, -81, 36, 99, -77, 100, 17, 16, -119, 31, 72, 123, -88, -32, 51, 39, -96, -35, 116, -65, 8, 41, -119, -108, -34, 41, 19, 26, -102, -16, -120, -96, 1, -5, -26, -13, 61, -121, 94, 59, 54, 110, 110, -55, 127, -106 };
AUX = Base64.encodeBase64String(s);
}
+
}
--
Gitblit v1.3.2