From 57ffee183242f45afc97a2822dc270fad8c9185e Mon Sep 17 00:00:00 2001 From: cyjseagull Date: Wed, 23 Sep 2020 10:40:07 +0800 Subject: [PATCH] rename KeyManager to KeyTool --- .ci/ci_check_commit.sh | 2 +- .../java/org/fisco/bcos/sdk/amop/Amop.java | 11 +++--- .../java/org/fisco/bcos/sdk/amop/AmopImp.java | 26 +++++++------- .../bcos/sdk/amop/topic/AmopMsgHandler.java | 17 ++++----- .../bcos/sdk/amop/topic/TopicManager.java | 16 ++++----- .../bcos/sdk/amop/AmopMsgHandlerTest.java | 6 ++-- .../fisco/bcos/sdk/amop/TopicManagerTest.java | 18 +++++----- .../bcos/sdk/crypto/CryptoInterface.java | 22 ++++++------ .../sdk/crypto/keypair/CryptoKeyPair.java | 15 ++++---- .../{KeyManager.java => KeyTool.java} | 8 ++--- .../bcos/sdk/crypto/keystore/P12KeyStore.java | 2 +- .../bcos/sdk/crypto/keystore/PEMKeyStore.java | 2 +- .../{KeyManagerTest.java => KeyToolTest.java} | 10 +++--- .../fisco/bcos/sdk/crypto/SignatureTest.java | 36 +++++++++---------- .../demo/amop/tool/AmopPublisherPrivate.java | 14 ++++---- .../amop/tool/AmopPublisherPrivateFile.java | 8 ++--- .../demo/amop/tool/AmopSubscriberPrivate.java | 4 +-- 17 files changed, 107 insertions(+), 110 deletions(-) rename sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/{KeyManager.java => KeyTool.java} (98%) rename sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/{KeyManagerTest.java => KeyToolTest.java} (96%) diff --git a/.ci/ci_check_commit.sh b/.ci/ci_check_commit.sh index fb7467c0c..e8a1cc86c 100644 --- a/.ci/ci_check_commit.sh +++ b/.ci/ci_check_commit.sh @@ -3,7 +3,7 @@ set -e scan_code_script="cobra/cobra.py -f json -o /tmp/report.json -t " -ignore_files=(sh crt key json toml SignatureTest.java Ok.java bin abi ChannelTest.java ParallelOkDemo.java PerformanceAmop.java DagPrecompiledDemo.java KeyManagerTest.java CryptoInterface.java AmopMsgHandlerTest.java TopicManager.java PrivateTopicVerifyTest.java AmopMsgBuilder.java TopicManagerTest.java AmopSubscribe.java AmopPublisher.java AmopPublisherPrivate.java AmopSubscribePrivate.java AmopPublisherFile.java AmopPublisherPrivateFile.java DemoAmopCallback.java FileToByteArrayHelper.java OkD.java TableTest.java PerformanceTable.java HelloWorld.java PerformanceRPC.java CodecTest.java ResponseTest.java ConfigTest.java) +ignore_files=(sh crt key json toml SignatureTest.java Ok.java bin abi ChannelTest.java ParallelOkDemo.java PerformanceAmop.java DagPrecompiledDemo.java KeyToolTest.java CryptoInterface.java AmopMsgHandlerTest.java TopicManager.java PrivateTopicVerifyTest.java AmopMsgBuilder.java TopicManagerTest.java AmopSubscribe.java AmopPublisher.java AmopPublisherPrivate.java AmopSubscribePrivate.java AmopPublisherFile.java AmopPublisherPrivateFile.java DemoAmopCallback.java FileToByteArrayHelper.java OkD.java TableTest.java PerformanceTable.java HelloWorld.java PerformanceRPC.java CodecTest.java ResponseTest.java ConfigTest.java) commit_limit=6 LOG_ERROR() { diff --git a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/Amop.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/Amop.java index 984911a11..f8e903618 100644 --- a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/Amop.java +++ b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/Amop.java @@ -22,7 +22,7 @@ import org.fisco.bcos.sdk.channel.Channel; import org.fisco.bcos.sdk.channel.ResponseCallback; import org.fisco.bcos.sdk.config.ConfigOption; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; /** * AMOP module interface. @@ -53,21 +53,20 @@ static Amop build(Channel channel, ConfigOption config) { * Subscribe a private topic which need verify. * * @param topicName - * @param privateKeyManager the private key you used to prove your identity. + * @param privateKeyTool the private key you used to prove your identity. * @param callback callback is called when receive a msg relate to this topic */ - void subscribePrivateTopics( - String topicName, KeyManager privateKeyManager, AmopCallback callback); + void subscribePrivateTopics(String topicName, KeyTool privateKeyTool, AmopCallback callback); /** * Config a topic which is need verification, after that user can send message to verified * subscriber. * * @param topicName - * @param publicKeyManagers the public keys of the target organizations that you want to + * @param publicKeyTools the public keys of the target organizations that you want to * communicate with */ - void publishPrivateTopic(String topicName, List publicKeyManagers); + void publishPrivateTopic(String topicName, List publicKeyTools); /** * Unsubscribe a topic. diff --git a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java index dd705e9bd..dc44ad435 100644 --- a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java +++ b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java @@ -28,7 +28,7 @@ import org.fisco.bcos.sdk.channel.model.Options; import org.fisco.bcos.sdk.config.ConfigOption; import org.fisco.bcos.sdk.config.model.AmopTopic; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.AmopMsg; @@ -74,17 +74,17 @@ public void subscribeTopic(String topicName, AmopCallback callback) { @Override public void subscribePrivateTopics( - String topicName, KeyManager privateKeyManager, AmopCallback callback) { + String topicName, KeyTool privateKeyTool, AmopCallback callback) { logger.info("subscribe private topic, topic:{}", topicName); - topicManager.addPrivateTopicSubscribe(topicName, privateKeyManager, callback); + topicManager.addPrivateTopicSubscribe(topicName, privateKeyTool, callback); sendSubscribe(); } @Override - public void publishPrivateTopic(String topicName, List publicKeyManagers) { + public void publishPrivateTopic(String topicName, List publicKeyTools) { logger.info( - "setup private topic, topic:{} pubKey len:{}", topicName, publicKeyManagers.size()); - topicManager.addPrivateTopicSend(topicName, publicKeyManagers); + "setup private topic, topic:{} pubKey len:{}", topicName, publicKeyTools.size()); + topicManager.addPrivateTopicSend(topicName, publicKeyTools); sendSubscribe(); } @@ -244,19 +244,19 @@ private void loadConfiguredTopics(ConfigOption config) throws AmopException { for (AmopTopic topic : topics) { if (null != topic.getPrivateKey()) { String privKeyFile = topic.getPrivateKey(); - KeyManager km; + KeyTool keyTool; if (privKeyFile.endsWith("p12")) { - km = new P12KeyStore(privKeyFile, topic.getPassword()); + keyTool = new P12KeyStore(privKeyFile, topic.getPassword()); } else { - km = new PEMKeyStore(privKeyFile); + keyTool = new PEMKeyStore(privKeyFile); } - topicManager.addPrivateTopicSubscribe(topic.getTopicName(), km, null); + topicManager.addPrivateTopicSubscribe(topic.getTopicName(), keyTool, null); } else if (null != topic.getPublicKeys()) { - List pubList = new ArrayList<>(); + List pubList = new ArrayList<>(); for (String pubKey : topic.getPublicKeys()) { - KeyManager km = new PEMKeyStore(pubKey); - pubList.add(km); + KeyTool keyTool = new PEMKeyStore(pubKey); + pubList.add(keyTool); } topicManager.addPrivateTopicSend(topic.getTopicName(), pubList); } else { diff --git a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java index d78fda6ba..e31251dd6 100644 --- a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java +++ b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java @@ -32,7 +32,7 @@ import org.fisco.bcos.sdk.channel.ResponseCallback; import org.fisco.bcos.sdk.channel.model.Options; import org.fisco.bcos.sdk.crypto.CryptoInterface; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.model.AmopMsg; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.Message; @@ -216,13 +216,13 @@ public void responseVerifyRequest(ChannelHandlerContext ctx, Message msg) { } public int checkSignature(String topic, byte[] randomValue, byte[] signature) { - List pubKeys = topicManager.getPublicKeysByTopic(topic); - Iterator pks = pubKeys.iterator(); + List pubKeys = topicManager.getPublicKeysByTopic(topic); + Iterator pks = pubKeys.iterator(); while (pks.hasNext()) { - KeyManager km = pks.next(); + KeyTool keyTool = pks.next(); CryptoInterface cryptoInterface = new CryptoInterface(CryptoType.ECDSA_TYPE); if (cryptoInterface.verify( - km, + keyTool, Hex.toHexString(cryptoInterface.hash(randomValue)), Hex.toHexString(signature))) { return 0; @@ -250,16 +250,17 @@ public void onPrivateTopicRandomValue(ChannelHandlerContext ctx, AmopMsg msg) { new String(msg.getData())); byte[] randValue = msg.getData(); String topic = msg.getTopic(); - KeyManager km = topicManager.getPrivateKeyByTopic(getSimpleTopic(topic)); + KeyTool keyTool = topicManager.getPrivateKeyByTopic(getSimpleTopic(topic)); String signature = ""; - if (null == km) { + if (null == keyTool) { logger.error("topic:{} not subscribed, reject message", getSimpleTopic(topic)); return; } else { CryptoInterface cryptoInterface = new CryptoInterface(CryptoType.ECDSA_TYPE); try { signature = - cryptoInterface.sign(km, Hex.toHexString(cryptoInterface.hash(randValue))); + cryptoInterface.sign( + keyTool, Hex.toHexString(cryptoInterface.hash(randValue))); } catch (Exception e) { logger.error( "please check the public key of topic {} is correct configured, error {}", diff --git a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java index bd733a112..d8d70ba10 100644 --- a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java +++ b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java @@ -24,14 +24,14 @@ import java.util.concurrent.ConcurrentHashMap; import org.fisco.bcos.sdk.amop.AmopCallback; import org.fisco.bcos.sdk.amop.AmopMsgOut; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TopicManager { private static Logger logger = LoggerFactory.getLogger(TopicManager.class); - private Map topic2PrivateKey = new ConcurrentHashMap<>(); - private Map> topic2PublicKeys = new ConcurrentHashMap<>(); + private Map topic2PrivateKey = new ConcurrentHashMap<>(); + private Map> topic2PublicKeys = new ConcurrentHashMap<>(); private Map topicName2FullName = new ConcurrentHashMap<>(); private Map topic2Callback = new ConcurrentHashMap<>(); private Set topics = Collections.synchronizedSet(new HashSet<>()); @@ -51,7 +51,7 @@ public void addTopic(String topicString, AmopCallback callback) { } public void addPrivateTopicSubscribe( - String topicName, KeyManager privateKeyStore, AmopCallback callback) { + String topicName, KeyTool privateKeyStore, AmopCallback callback) { String fullNameToSendToNode = makeVerifyChannelPrefixTopic(topicName); logger.trace( "add private topic subscribe, topic:{} full name:{}", @@ -66,14 +66,14 @@ public void addPrivateTopicSubscribe( } } - public void addPrivateTopicSend(String topicName, List publicKeyManagers) { + public void addPrivateTopicSend(String topicName, List publicKeyTools) { String fullNameToSendToNode = makePushChannelPrefixTopic(topicName); logger.trace( "add private topic to send, topic:{} full name:{}", topicName, fullNameToSendToNode); topics.add(fullNameToSendToNode); - topic2PublicKeys.put(addNeedVerifyTopicPrefix(topicName), publicKeyManagers); + topic2PublicKeys.put(addNeedVerifyTopicPrefix(topicName), publicKeyTools); topicName2FullName.put(topicName, fullNameToSendToNode); } @@ -156,11 +156,11 @@ public void setCallback(AmopCallback cb) { this.callback = cb; } - public List getPublicKeysByTopic(String topic) { + public List getPublicKeysByTopic(String topic) { return topic2PublicKeys.get(topic); } - public KeyManager getPrivateKeyByTopic(String topic) { + public KeyTool getPrivateKeyByTopic(String topic) { return topic2PrivateKey.get(topic); } diff --git a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java index 2f6601795..413a43fbe 100644 --- a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java +++ b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java @@ -9,7 +9,7 @@ import org.fisco.bcos.sdk.amop.topic.TopicManager; import org.fisco.bcos.sdk.channel.ResponseCallback; import org.fisco.bcos.sdk.crypto.CryptoInterface; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.AmopMsg; @@ -104,7 +104,7 @@ public void testSignRandom() throws JsonProcessingException { .getResource( "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem") .getPath(); - KeyManager km = new PEMKeyStore(keyFile); + KeyTool km = new PEMKeyStore(keyFile); Assert.assertTrue( cryptoInterface.verify( km, @@ -170,7 +170,7 @@ private void senderGenRandom() throws JsonProcessingException { private void initEnv() { topicManagerSender = new TopicManager(); msgHandlerSender = new AmopMsgHandler(chSender, topicManagerSender); - List list = new ArrayList<>(); + List list = new ArrayList<>(); String keyFile = AmopMsgHandlerTest.class .getClassLoader() diff --git a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java index ebfca8de5..e4ea370c8 100644 --- a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java +++ b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java @@ -20,7 +20,7 @@ import java.util.Set; import org.fisco.bcos.sdk.amop.topic.AmopMsgIn; import org.fisco.bcos.sdk.amop.topic.TopicManager; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.junit.Assert; import org.junit.Test; @@ -42,14 +42,14 @@ public void testAddTopic() { .getResource( "keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem") .getPath(); - KeyManager km = new PEMKeyStore(keyFile); - topicManager.addPrivateTopicSubscribe("priv", km, null); + KeyTool keyTool = new PEMKeyStore(keyFile); + topicManager.addPrivateTopicSubscribe("priv", keyTool, null); Assert.assertEquals( "#!$TopicNeedVerify_priv", topicManager.getFullTopicString("priv").substring(17, 40)); - List list = new ArrayList<>(); - list.add(km); + List list = new ArrayList<>(); + list.add(keyTool); topicManager.addPrivateTopicSend("priv2", list); Assert.assertEquals( "#!$PushChannel_#!$TopicNeedVerify_priv2", @@ -151,10 +151,10 @@ private TopicManager getTestTopicManager() { .getResource( "keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem") .getPath(); - KeyManager km = new PEMKeyStore(keyFile); - topicManager.addPrivateTopicSubscribe("priv", km, null); - List list = new ArrayList<>(); - list.add(km); + KeyTool keyTool = new PEMKeyStore(keyFile); + topicManager.addPrivateTopicSubscribe("priv", keyTool, null); + List list = new ArrayList<>(); + list.add(keyTool); topicManager.addPrivateTopicSend("priv2", list); topicManager.addPrivateTopicCallback("priv2", cb3); return topicManager; diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java index ab32b664e..864e0885b 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java @@ -24,7 +24,7 @@ import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.keypair.ECDSAKeyPair; import org.fisco.bcos.sdk.crypto.keypair.SM2KeyPair; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.crypto.signature.ECDSASignature; @@ -88,11 +88,11 @@ public CryptoInterface(int cryptoTypeConfig) { } public void loadAccount(String accountFileFormat, String accountFilePath, String password) { - KeyManager keyManager = null; + KeyTool keyTool = null; if (accountFileFormat.compareToIgnoreCase("p12") == 0) { - keyManager = new P12KeyStore(accountFilePath, password); + keyTool = new P12KeyStore(accountFilePath, password); } else if (accountFileFormat.compareToIgnoreCase("pem") == 0) { - keyManager = new PEMKeyStore(accountFilePath); + keyTool = new PEMKeyStore(accountFilePath); } else { throw new LoadKeyStoreException( "unsupported account file format : " @@ -100,7 +100,7 @@ public void loadAccount(String accountFileFormat, String accountFilePath, String + ", current supported are p12 and pem"); } logger.debug("Load account from {}", accountFilePath); - createKeyPair(keyManager.getKeyPair()); + createKeyPair(keyTool.getKeyPair()); } private void loadAccount(ConfigOption configOption) { @@ -155,18 +155,18 @@ public SignatureResult sign(final String message, final CryptoKeyPair keyPair) { } // for AMOP topic verify, generate signature - public String sign(KeyManager keyManager, String message) { - CryptoKeyPair cryptoKeyPair = this.keyPairFactory.createKeyPair(keyManager.getKeyPair()); + public String sign(KeyTool keyTool, String message) { + CryptoKeyPair cryptoKeyPair = this.keyPairFactory.createKeyPair(keyTool.getKeyPair()); return signatureImpl.signWithStringSignature(message, cryptoKeyPair); } // for AMOP topic verify, verify the signature - public boolean verify(KeyManager keyManager, String message, String signature) { - return verify(keyManager.getHexedPublicKey(), message, signature); + public boolean verify(KeyTool keyTool, String message, String signature) { + return verify(keyTool.getHexedPublicKey(), message, signature); } - public boolean verify(KeyManager keyManager, byte[] message, byte[] signature) { - return verify(keyManager.getHexedPublicKey(), message, signature); + public boolean verify(KeyTool keyTool, byte[] message, byte[] signature) { + return verify(keyTool.getHexedPublicKey(), message, signature); } public boolean verify(final String publicKey, final String message, final String signature) { diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java index 15f7234d9..cc4a96b96 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java @@ -23,7 +23,7 @@ import org.fisco.bcos.sdk.config.ConfigOption; import org.fisco.bcos.sdk.crypto.exceptions.KeyPairException; import org.fisco.bcos.sdk.crypto.hash.Hash; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.utils.Hex; @@ -77,8 +77,8 @@ public CryptoKeyPair() {} public CryptoKeyPair(KeyPair keyPair) { this.keyPair = keyPair; // init privateKey/publicKey from the keyPair - this.hexPrivateKey = KeyManager.getHexedPrivateKey(keyPair.getPrivate()); - this.hexPublicKey = KeyManager.getHexedPublicKey(keyPair.getPublic()); + this.hexPrivateKey = KeyTool.getHexedPrivateKey(keyPair.getPrivate()); + this.hexPublicKey = KeyTool.getHexedPublicKey(keyPair.getPublic()); } /** * get CryptoKeyPair information from CryptoResult @@ -116,16 +116,15 @@ public KeyPair getKeyPair() { public abstract CryptoKeyPair createKeyPair(KeyPair keyPair); public CryptoKeyPair createKeyPair(BigInteger privateKeyValue) { - PrivateKey privateKey = - KeyManager.convertHexedStringToPrivateKey(privateKeyValue, curveName); - PublicKey publicKey = KeyManager.getPublicKeyFromPrivateKey(privateKey); + PrivateKey privateKey = KeyTool.convertHexedStringToPrivateKey(privateKeyValue, curveName); + PublicKey publicKey = KeyTool.getPublicKeyFromPrivateKey(privateKey); KeyPair keyPair = new KeyPair(publicKey, privateKey); return createKeyPair(keyPair); } public CryptoKeyPair createKeyPair(String hexPrivateKey) { - PrivateKey privateKey = KeyManager.convertHexedStringToPrivateKey(hexPrivateKey, curveName); - PublicKey publicKey = KeyManager.getPublicKeyFromPrivateKey(privateKey); + PrivateKey privateKey = KeyTool.convertHexedStringToPrivateKey(hexPrivateKey, curveName); + PublicKey publicKey = KeyTool.getPublicKeyFromPrivateKey(privateKey); KeyPair keyPair = new KeyPair(publicKey, privateKey); return createKeyPair(keyPair); } diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyTool.java similarity index 98% rename from sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyTool.java index a0348c1d0..af5657f81 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyTool.java @@ -49,8 +49,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class KeyManager { - protected static Logger logger = LoggerFactory.getLogger(KeyManager.class); +public abstract class KeyTool { + protected static Logger logger = LoggerFactory.getLogger(KeyTool.class); protected final String keyStoreFile; protected final String password; @@ -63,7 +63,7 @@ public abstract class KeyManager { * @param keyStoreFile the path of the keystore file * @param password password to read the keystore file */ - public KeyManager(final String keyStoreFile, final String password) { + public KeyTool(final String keyStoreFile, final String password) { this.keyStoreFile = keyStoreFile; this.password = password; initSecurity(); @@ -75,7 +75,7 @@ public KeyManager(final String keyStoreFile, final String password) { * * @param keyStoreFile the path of the keystore file */ - public KeyManager(final String keyStoreFile) { + public KeyTool(final String keyStoreFile) { this(keyStoreFile, null); } diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java index f9d8f8e93..d236561c0 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java @@ -37,7 +37,7 @@ import org.fisco.bcos.sdk.crypto.exceptions.LoadKeyStoreException; import org.fisco.bcos.sdk.crypto.exceptions.SaveKeyStoreException; -public class P12KeyStore extends KeyManager { +public class P12KeyStore extends KeyTool { private static final String NAME = "key"; private KeyStore keyStore; diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java index a1e6b7207..b2d475a03 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java @@ -32,7 +32,7 @@ import org.fisco.bcos.sdk.crypto.exceptions.LoadKeyStoreException; import org.fisco.bcos.sdk.crypto.exceptions.SaveKeyStoreException; -public class PEMKeyStore extends KeyManager { +public class PEMKeyStore extends KeyTool { public static final String PRIVATE_KEY = "PRIVATE KEY"; private PemObject pem; diff --git a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyToolTest.java similarity index 96% rename from sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java rename to sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyToolTest.java index 12a9acc9c..7b4ed5e40 100644 --- a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java +++ b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyToolTest.java @@ -14,17 +14,17 @@ package org.fisco.bcos.sdk.crypto; import java.security.KeyPair; -import org.fisco.bcos.sdk.crypto.CryptoInterface; + import org.fisco.bcos.sdk.crypto.exceptions.LoadKeyStoreException; import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.CryptoType; import org.junit.Assert; import org.junit.Test; -public class KeyManagerTest { +public class KeyToolTest { @Test public void testECDSALoadPEMFile() { String keyStoreFile = "keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem"; @@ -155,14 +155,14 @@ private String getFilePath(String fileName) { private CryptoKeyPair testLoadPEMFile( String pemFileName, int cryptoType, String expectedAccount) { // get KeyPair from the pem - KeyManager pem = new PEMKeyStore(getFilePath(pemFileName)); + KeyTool pem = new PEMKeyStore(getFilePath(pemFileName)); KeyPair keyPair = pem.getKeyPair(); return testSignature(keyPair, cryptoType, expectedAccount); } private CryptoKeyPair testLoadP12File( String p12FileName, int cryptoType, String password, String expectedAccount) { - KeyManager p12 = new P12KeyStore(getFilePath(p12FileName), password); + KeyTool p12 = new P12KeyStore(getFilePath(p12FileName), password); KeyPair keyPair = p12.getKeyPair(); return testSignature(keyPair, cryptoType, expectedAccount); } diff --git a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java index 5c3b84bad..9653f95c9 100644 --- a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java +++ b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java @@ -18,7 +18,6 @@ import org.fisco.bcos.sdk.config.Config; import org.fisco.bcos.sdk.config.ConfigOption; import org.fisco.bcos.sdk.config.exceptions.ConfigException; -import org.fisco.bcos.sdk.crypto.CryptoInterface; import org.fisco.bcos.sdk.crypto.exceptions.KeyPairException; import org.fisco.bcos.sdk.crypto.hash.Hash; import org.fisco.bcos.sdk.crypto.hash.Keccak256; @@ -26,14 +25,13 @@ import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.keypair.ECDSAKeyPair; import org.fisco.bcos.sdk.crypto.keypair.SM2KeyPair; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.crypto.signature.ECDSASignature; import org.fisco.bcos.sdk.crypto.signature.SM2Signature; import org.fisco.bcos.sdk.crypto.signature.Signature; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; -import org.fisco.bcos.sdk.model.ConstantConfig; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.utils.Hex; import org.junit.Assert; @@ -298,21 +296,21 @@ public void testSignature(CryptoInterface signature, CryptoKeyPair keyPair) { public void testSignAndVerifyWithKeyManager() { String publicKeyPem = "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem"; - KeyManager verifykeyManager = + KeyTool verifykeyTool = new PEMKeyStore(getClass().getClassLoader().getResource(publicKeyPem).getPath()); String keyPairPem = "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12"; - KeyManager signKeyManager = + KeyTool signKeyTool = new P12KeyStore( getClass().getClassLoader().getResource(keyPairPem).getPath(), "123456"); CryptoInterface cryptoInterface = new CryptoInterface(CryptoType.ECDSA_TYPE); // sign and verify message with keyManager for (int i = 0; i < 10; i++) { String message = cryptoInterface.hash("abcd----" + Integer.toString(i)); - String signature = cryptoInterface.sign(signKeyManager, message); - Assert.assertTrue(cryptoInterface.verify(verifykeyManager, message, signature)); + String signature = cryptoInterface.sign(signKeyTool, message); + Assert.assertTrue(cryptoInterface.verify(verifykeyTool, message, signature)); String invalidMessage = cryptoInterface.hash("abcde----" + Integer.toString(i)); - Assert.assertTrue(!cryptoInterface.verify(verifykeyManager, invalidMessage, signature)); + Assert.assertTrue(!cryptoInterface.verify(verifykeyTool, invalidMessage, signature)); } } @@ -357,7 +355,7 @@ public void testLoadAndStoreKeyPairWithPEM(int cryptoType) throws ConfigExceptio String pemFilePath = getKeyStoreFilePath(cryptoInterface, configOption, CryptoKeyPair.PEM_FILE_POSTFIX); // load pem file - KeyManager pemManager = new PEMKeyStore(pemFilePath); + KeyTool pemManager = new PEMKeyStore(pemFilePath); CryptoKeyPair decodedCryptoKeyPair = cryptoInterface.createKeyPair(pemManager.getKeyPair()); System.out.println("PEM orgKeyPair pub: " + orgKeyPair.getHexPublicKey()); @@ -368,10 +366,10 @@ public void testLoadAndStoreKeyPairWithPEM(int cryptoType) throws ConfigExceptio // test sign and verify message with String publicPemPath = pemFilePath + ".pub"; - KeyManager verifyKeyManager = new PEMKeyStore(publicPemPath); + KeyTool verifyKeyTool = new PEMKeyStore(publicPemPath); checkSignAndVerifyWithKeyManager( - pemManager, decodedCryptoKeyPair, verifyKeyManager, cryptoInterface); + pemManager, decodedCryptoKeyPair, verifyKeyTool, cryptoInterface); } public void testLoadAndStoreKeyPairWithP12(int cryptoType) throws ConfigException { @@ -386,7 +384,7 @@ public void testLoadAndStoreKeyPairWithP12(int cryptoType) throws ConfigExceptio String p12FilePath = getKeyStoreFilePath(cryptoInterface, configOption, CryptoKeyPair.P12_FILE_POSTFIX); // load p12 file - KeyManager p12Manager = new P12KeyStore(p12FilePath, password); + KeyTool p12Manager = new P12KeyStore(p12FilePath, password); CryptoKeyPair decodedCryptoKeyPair = cryptoInterface.createKeyPair(p12Manager.getKeyPair()); // check the keyPair System.out.println("P12 orgKeyPair pub: " + orgKeyPair.getHexPublicKey()); @@ -402,15 +400,15 @@ public void testLoadAndStoreKeyPairWithP12(int cryptoType) throws ConfigExceptio // test sign and verify message with String publicP12Path = p12FilePath + ".pub"; - KeyManager verifyKeyManager = new PEMKeyStore(publicP12Path); + KeyTool verifyKeyTool = new PEMKeyStore(publicP12Path); checkSignAndVerifyWithKeyManager( - p12Manager, decodedCryptoKeyPair, verifyKeyManager, cryptoInterface); + p12Manager, decodedCryptoKeyPair, verifyKeyTool, cryptoInterface); } private void checkSignAndVerifyWithKeyManager( - KeyManager pemManager, + KeyTool pemManager, CryptoKeyPair cryptoKeyPair, - KeyManager verifyKeyManager, + KeyTool verifyKeyTool, CryptoInterface cryptoInterface) { // sign and verify message with cryptoKeyPair for (int i = 0; i < 10; i++) { @@ -436,12 +434,12 @@ private void checkSignAndVerifyWithKeyManager( for (int i = 0; i < 10; i++) { String message = cryptoInterface.hash("abcd----" + Integer.toString(i)); String signature = cryptoInterface.sign(pemManager, message); - Assert.assertTrue(cryptoInterface.verify(verifyKeyManager, message, signature)); + Assert.assertTrue(cryptoInterface.verify(verifyKeyTool, message, signature)); Assert.assertTrue( cryptoInterface.verify( - verifyKeyManager, Hex.decode(message), Hex.decode(signature))); + verifyKeyTool, Hex.decode(message), Hex.decode(signature))); String invalidMessage = cryptoInterface.hash("abcde----" + Integer.toString(i)); - Assert.assertTrue(!cryptoInterface.verify(verifyKeyManager, invalidMessage, signature)); + Assert.assertTrue(!cryptoInterface.verify(verifyKeyTool, invalidMessage, signature)); } } } diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java index cb3bfa355..56469f22c 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java @@ -7,7 +7,7 @@ import org.fisco.bcos.sdk.amop.AmopMsgOut; import org.fisco.bcos.sdk.amop.topic.TopicType; import org.fisco.bcos.sdk.channel.ResponseCallback; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.Response; @@ -49,14 +49,14 @@ public static void main(String[] args) throws Exception { System.out.println("start test"); System.out.println("==================================================================="); System.out.println("set up private topic"); - List kml = new ArrayList<>(); - KeyManager km1 = new PEMKeyStore(pubkey1); - kml.add(km1); + List keyToolList = new ArrayList<>(); + KeyTool keyTool = new PEMKeyStore(pubkey1); + keyToolList.add(keyTool); if (!pubkey2.equals("null")) { - KeyManager km2 = new PEMKeyStore(pubkey2); - kml.add(km2); + KeyTool keyTool1 = new PEMKeyStore(pubkey2); + keyToolList.add(keyTool1); } - amop.publishPrivateTopic(topicName, kml); + amop.publishPrivateTopic(topicName, keyToolList); System.out.println("wait until finish private topic verify"); System.out.println("3s ..."); Thread.sleep(1000); diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java index 863078042..3f6e5aa60 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java @@ -12,7 +12,7 @@ import org.fisco.bcos.sdk.amop.AmopMsgOut; import org.fisco.bcos.sdk.amop.topic.TopicType; import org.fisco.bcos.sdk.channel.ResponseCallback; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.Response; @@ -54,11 +54,11 @@ public static void main(String[] args) throws Exception { System.out.println("start test"); System.out.println("==================================================================="); System.out.println("set up private topic"); - List kml = new ArrayList<>(); - KeyManager km1 = new PEMKeyStore(pubkey1); + List kml = new ArrayList<>(); + KeyTool km1 = new PEMKeyStore(pubkey1); kml.add(km1); if (!pubkey2.equals("null")) { - KeyManager km2 = new PEMKeyStore(pubkey2); + KeyTool km2 = new PEMKeyStore(pubkey2); kml.add(km2); } amop.publishPrivateTopic(topicName, kml); diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java index b3c1e3043..201f6431c 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java @@ -3,7 +3,7 @@ import org.fisco.bcos.sdk.BcosSDK; import org.fisco.bcos.sdk.amop.Amop; import org.fisco.bcos.sdk.amop.AmopCallback; -import org.fisco.bcos.sdk.crypto.keystore.KeyManager; +import org.fisco.bcos.sdk.crypto.keystore.KeyTool; import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; @@ -32,7 +32,7 @@ public static void main(String[] args) throws Exception { System.out.println("Start test"); amop.setCallback(cb); - KeyManager km; + KeyTool km; if (privateKeyFile.endsWith("p12")) { String password = args[2]; km = new P12KeyStore(privateKeyFile, password);