diff --git a/Makefile b/Makefile index 80d38bc..d3649fd 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,6 @@ TEST_JAVA_DIR := ${TOPDIR}/src/test/java TEST_JAVA_SRCS := $(wildcard $(addsuffix /*.java, $(TEST_JAVA_DIR))) TEST_NAT_SRCS := $(wildcard $(addsuffix /*.c, $(TEST_JAVA_DIR)/native)) TESTOBJS := $(patsubst $(TEST_JAVA_DIR)/native/%.c, $(TEST_BIN)/%.o, $(TEST_NAT_SRCS)) -TESTLIB := $(BUILD)/test/bin/libsigtest.so LIBPATH := $(BUILD)/bin:${TOPDIR}/build/test/bin @@ -79,9 +78,6 @@ $(BUILD)/test/bin/%.o: $(TEST_JAVA_DIR)/native/%.c $(SOLIB): $(OBJS) @cc ${LDFLAGS} -o $@ $^ -L/usr/local/lib64 -lcrypto -lssl -$(TESTLIB): $(TESTOBJS) - @cc -shared -fPIC -Wl,-soname,libsigtest.so -o $@ $^ -L/usr/local/lib64 -L$(BUILD)/bin -lcrypto -lssl -ljssl - $(TEST_BIN)/%: $(TEST_C_DIR)/%.c @cc $(TEST_CFLAGS) -o $@ $< -ljssl -lcrypto @@ -90,7 +86,7 @@ gen-code: solib: $(BUILD)/bin $(SOLIB) -test-solib: $(BUILD)/test/bin $(TESTLIB) $(TEST_C_OBJS) +test-solib: $(BUILD)/test/bin $(TEST_C_OBJS) @LD_LIBRARY_PATH=$(BUILD)/bin:$(BUILD)/test LIBPATH=${LIBPATH} src/test/runner.py clean: diff --git a/src/test/java/SignatureTest.java b/src/test/java/SignatureTest.java index 34e2174..4f2bc3f 100644 --- a/src/test/java/SignatureTest.java +++ b/src/test/java/SignatureTest.java @@ -18,6 +18,7 @@ import com.canonical.openssl.key.OpenSSLKey; import com.canonical.openssl.key.OpenSSLPublicKey; import com.canonical.openssl.key.OpenSSLPrivateKey; +import com.canonical.openssl.key.KeyConverter; import java.security.PublicKey; import java.security.PrivateKey; import java.util.Arrays; @@ -25,6 +26,8 @@ import java.security.spec.AlgorithmParameterSpec; import java.security.AlgorithmParameters; import java.security.InvalidKeyException; +import java.security.KeyPair; +import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; @@ -39,9 +42,6 @@ import static org.junit.Assert.assertFalse; public class SignatureTest { - static { - System.loadLibrary("sigtest"); - } static String message = "Apollo is one of the Olympian deities in classical " + "Greek and Roman religion and Greek and Roman mythology. Apollo " @@ -56,11 +56,10 @@ public class SignatureTest { @Test public void testRSABasic() throws Exception { - RSAKeyPairGenerator gen = new RSAKeyPairGenerator(); - gen.generateKeyPair(); - - PublicKey publicKey = gen.pubKey; - PrivateKey privateKey = gen.privKey; + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); signer.initSign(privateKey); @@ -77,8 +76,11 @@ public void testRSABasic() throws Exception { @Test public void testRSAwithMultipleUpdates() throws Exception { - PublicKey publicKey = new RSAPublicKey("src/test/keys/rsa16384-pub.pem"); - PrivateKey privateKey = new RSAPrivateKey("src/test/keys/rsa16384-priv.pem"); + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + gen.initialize(4096); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); signer.initSign(privateKey); @@ -99,11 +101,10 @@ public void testRSAwithMultipleUpdates() throws Exception { @Test public void testRSAsingleByteUpdates() throws Exception { - RSAKeyPairGenerator gen = new RSAKeyPairGenerator(); - gen.generateKeyPair(); - - PublicKey publicKey = gen.pubKey; - PrivateKey privateKey = gen.privKey; + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); signer.initSign(privateKey); @@ -123,8 +124,11 @@ public void testRSAsingleByteUpdates() throws Exception { @Test public void testRSAmultipleByteBufferUpdates() throws Exception { - PublicKey publicKey = new RSAPublicKey("src/test/keys/rsa8192-pub.pem"); - PrivateKey privateKey = new RSAPrivateKey("src/test/keys/rsa8192-priv.pem"); + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + gen.initialize(8192); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); signer.initSign(privateKey); @@ -141,8 +145,11 @@ public void testRSAmultipleByteBufferUpdates() throws Exception { @Test public void testRSAsignNonzeroOffset() throws Exception { - PublicKey publicKey = new RSAPublicKey("src/test/keys/rsa4096-pub.pem"); - PrivateKey privateKey = new RSAPrivateKey("src/test/keys/rsa4096-priv.pem"); + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + gen.initialize(4096); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); byte[] sigBytes = new byte[612]; Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); @@ -160,11 +167,10 @@ public void testRSAsignNonzeroOffset() throws Exception { @Test public void testRSAtamperedSignature() throws Exception { - RSAKeyPairGenerator gen = new RSAKeyPairGenerator(); - gen.generateKeyPair(); - - PublicKey publicKey = gen.pubKey; - PrivateKey privateKey = gen.privKey; + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); signer.initSign(privateKey); @@ -187,11 +193,11 @@ public void testRSAtamperedSignature() throws Exception { @Test public void testRSAtamperedContent() throws Exception { - RSAKeyPairGenerator gen = new RSAKeyPairGenerator(); - gen.generateKeyPair(); + KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA"); + KeyPair kp = gen.generateKeyPair(); + PublicKey publicKey = new RSAPublicKey(KeyConverter.publicKeyToEVPKey(kp.getPublic())); + PrivateKey privateKey = new RSAPrivateKey(KeyConverter.privateKeyToEVPKey(kp.getPrivate())); - PublicKey publicKey = gen.pubKey; - PrivateKey privateKey = gen.privKey; Signature signer = Signature.getInstance("RSAwithSHA256", "OpenSSLFIPSProvider"); signer.initSign(privateKey); @@ -238,15 +244,9 @@ public RSAPublicKey(long nativeKey) { this.nativeKey = nativeKey; } - public RSAPublicKey(String filename) { - this.nativeKey = readPubKeyFromPem0(filename); - } - public long getNativeKeyHandle() { return nativeKey; } - - native long readPubKeyFromPem0(String filename); } class RSAPrivateKey extends TestKey implements OpenSSLPrivateKey { @@ -256,29 +256,7 @@ public RSAPrivateKey(long nativeKey) { this.nativeKey = nativeKey; } - public RSAPrivateKey(String filename) { - this.nativeKey = readPrivKeyFromPem0(filename); - } - public long getNativeKeyHandle() { return nativeKey; } - - native long readPrivKeyFromPem0(String filename); -} - -class RSAKeyPairGenerator { - long nativePrivKey = 0; - long nativePubKey = 0; - - RSAPrivateKey privKey; - RSAPublicKey pubKey; - - public void generateKeyPair() { - generateKeyPair0(); - privKey = new RSAPrivateKey(nativePrivKey); - pubKey = new RSAPublicKey(nativePubKey); - } - - private native void generateKeyPair0(); } diff --git a/src/test/java/native/RSAKeyPairGenerator.c b/src/test/java/native/RSAKeyPairGenerator.c deleted file mode 100644 index 2301e1a..0000000 --- a/src/test/java/native/RSAKeyPairGenerator.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) Canonical, Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -#include -#include "jssl.h" -#include -#include -#include -#include -#include - -# define TEST_ptr(a) (a) -# define TEST_true(a) ((a) != 0) - -int rsa_keygen(OSSL_LIB_CTX *libctx, int bits, EVP_PKEY **pub, EVP_PKEY **priv) -{ - int ret = 0; - unsigned char *pub_der = NULL; - const unsigned char *pp = NULL; - size_t len = 0; - OSSL_ENCODER_CTX *ectx = NULL; - - if (!TEST_ptr(*priv = EVP_PKEY_Q_keygen(libctx, NULL, "RSA", bits)) - || !TEST_ptr(ectx = - OSSL_ENCODER_CTX_new_for_pkey(*priv, - EVP_PKEY_PUBLIC_KEY, - "DER", "type-specific", - NULL)) - || !TEST_true(OSSL_ENCODER_to_data(ectx, &pub_der, &len))) - goto err; - pp = pub_der; - if (NULL == (d2i_PublicKey(EVP_PKEY_RSA, pub, &pp, len))) - goto err; - ret = 1; -err: - OSSL_ENCODER_CTX_free(ectx); - OPENSSL_free(pub_der); - return ret; -} - -/* - * Class: RSAKeyPairGenerator - * Method: generateKeyPair0 - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_RSAKeyPairGenerator_generateKeyPair0 - (JNIEnv *env, jobject this) { - OSSL_LIB_CTX *libctx = load_openssl_fips_provider("/usr/local/ssl/openssl.cnf"); - EVP_PKEY *public_key = NULL; - EVP_PKEY *private_key = NULL; - rsa_keygen(libctx, 4096, &public_key, &private_key); - - // set public key in Java object - jclass clazz = (*env)->GetObjectClass(env, this); - jfieldID id1 = (*env)->GetFieldID(env, clazz, "nativePrivKey", "J"); - (*env)->SetLongField(env, this, id1, (jlong)private_key); - - // set private key in Java object - jfieldID id2 = (*env)->GetFieldID(env, clazz, "nativePubKey", "J"); - (*env)->SetLongField(env, this, id2, (jlong)public_key); -} - - - diff --git a/src/test/java/native/RSAKeyPairGenerator.h b/src/test/java/native/RSAKeyPairGenerator.h deleted file mode 100644 index 311e6e0..0000000 --- a/src/test/java/native/RSAKeyPairGenerator.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) Canonical, Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class RSAKeyPairGenerator */ - -#ifndef _Included_RSAKeyPairGenerator -#define _Included_RSAKeyPairGenerator -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: RSAKeyPairGenerator - * Method: generateKeyPair0 - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_RSAKeyPairGenerator_generateKeyPair0 - (JNIEnv *, jobject); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/test/java/native/RSAPrivateKey.c b/src/test/java/native/RSAPrivateKey.c deleted file mode 100644 index 8f1656f..0000000 --- a/src/test/java/native/RSAPrivateKey.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) Canonical, Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -#include -#include "jssl.h" -#include -#include -#include - -/* - * Class: RSAPrivateKey - * Method: readPrivKeyFromPem0 - * Signature: (Ljava/lang/String;)J - */ -JNIEXPORT jlong JNICALL Java_RSAPrivateKey_readPrivKeyFromPem0 - (JNIEnv *env, jobject this, jstring filename) { - OSSL_LIB_CTX *libctx = load_openssl_fips_provider("/usr/local/ssl/openssl.cnf"); - char *c_filename = (char*)(*env)->GetStringUTFChars(env, filename, 0); - FILE *pemfile = fopen(c_filename, "r"); - return (jlong)PEM_read_PrivateKey_ex(pemfile, NULL, NULL, NULL, libctx, NULL); -} - diff --git a/src/test/java/native/RSAPrivateKey.h b/src/test/java/native/RSAPrivateKey.h deleted file mode 100644 index b72d41d..0000000 --- a/src/test/java/native/RSAPrivateKey.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) Canonical, Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class RSAPrivateKey */ - -#ifndef _Included_RSAPrivateKey -#define _Included_RSAPrivateKey -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: RSAPrivateKey - * Method: readPrivKeyFromPem0 - * Signature: (Ljava/lang/String;)J - */ -JNIEXPORT jlong JNICALL Java_RSAPrivateKey_readPrivKeyFromPem0 - (JNIEnv *, jobject, jstring); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/test/java/native/RSAPublicKey.c b/src/test/java/native/RSAPublicKey.c deleted file mode 100644 index 0cb52e3..0000000 --- a/src/test/java/native/RSAPublicKey.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) Canonical, Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -#include -#include "jssl.h" -#include -#include -#include - -/* - * Class: RSAPublicKey - * Method: readPubKeyFromPem0 - * Signature: (Ljava/lang/String;)J - */ -JNIEXPORT jlong JNICALL Java_RSAPublicKey_readPubKeyFromPem0 - (JNIEnv *env, jobject this, jstring filename) { - OSSL_LIB_CTX *libctx = load_openssl_fips_provider("/usr/local/ssl/openssl.cnf"); - char *c_filename = (char*)(*env)->GetStringUTFChars(env, filename, 0); - FILE *pemfile = fopen(c_filename, "r"); - return (jlong)PEM_read_PUBKEY_ex(pemfile, NULL, NULL, NULL, libctx, NULL); -} diff --git a/src/test/java/native/RSAPublicKey.h b/src/test/java/native/RSAPublicKey.h deleted file mode 100644 index 6363d5d..0000000 --- a/src/test/java/native/RSAPublicKey.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) Canonical, Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class RSAPublicKey */ - -#ifndef _Included_RSAPublicKey -#define _Included_RSAPublicKey -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: RSAPublicKey - * Method: readPubKeyFromPem0 - * Signature: (Ljava/lang/String;)J - */ -JNIEXPORT jlong JNICALL Java_RSAPublicKey_readPubKeyFromPem0 - (JNIEnv *, jobject, jstring); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/test/keys/rsa16384-priv.pem b/src/test/keys/rsa16384-priv.pem deleted file mode 100644 index 07b26bc..0000000 --- a/src/test/keys/rsa16384-priv.pem +++ /dev/null @@ -1,195 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- diff --git a/src/test/keys/rsa16384-pub.pem b/src/test/keys/rsa16384-pub.pem deleted file mode 100644 index 0861ea8..0000000 --- a/src/test/keys/rsa16384-pub.pem +++ /dev/null @@ -1,45 +0,0 @@ ------BEGIN RSA PUBLIC KEY----- -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 ------END RSA PUBLIC KEY----- diff --git a/src/test/keys/rsa4096-priv.pem b/src/test/keys/rsa4096-priv.pem deleted file mode 100644 index bf61ff9..0000000 --- a/src/test/keys/rsa4096-priv.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- diff --git a/src/test/keys/rsa4096-pub.pem b/src/test/keys/rsa4096-pub.pem deleted file mode 100644 index 890b5a4..0000000 --- a/src/test/keys/rsa4096-pub.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN RSA PUBLIC KEY----- -MIICCgKCAgEAyffCsCX+I6ZLEgTI1kg18BF1kxEPiB1XY5Iv3ifPzSkOtObUYVAE -DIaYnwJNW/GPqmpo0N2Xh4c3GjdhMuE0jdK3qNoUXpbd4trO7l1GkXZfaw2XE1z1 -xclfF3ayYoPpzI4LI5vQ0FiZemWnozxb2n6+MnavDf/t2kxIbp6o1m9D1VQU2dY+ -fUFBx6QkCRtZvHPSRy6RIlpgmFh86EE7eQnp7sMoeoqn6MfzHJ170G3CldXD1pIB -yvJQ9UxRh8zfqRTP8t/mn4bcrKgCd6ubXs22BKKc9GgQCwzc5WpMxB6CXJyaYlJp -mc+M96hB0hfHR3UfSffGFANSIvbuTAQwK84vZ5XQKuCzi6PCZ3r8tLmH8ILBnIe0 -9wCjxpR26AXHvZHzLzfuU82ISO1oxeCHzHvVZaBqqPDFJR0QBRDiqDpp0Uc5ChuS -HewT1XoOULNNE5y60ygIneg7F9QI9ewgbEn/u+NnwImbqEkRq8+3dvyYJT59z1ZK -RwjE9vYbqUvzJDHJFauzB2TbjMjE17fQDZyda2QWUedU5SpxXYmSgS2+yOWqFPwl -1DNxfK7yeZ0W4s84TL02UwLX/nP88+IfF+uvbUG/3znmGb00ijAGgZKzoTQw/E/8 -qzA0xBGfZ0lSbsDrYDf+PmSLmNb9WKGiMPiXdgRkFQVEATKBMYNGDZMCAwEAAQ== ------END RSA PUBLIC KEY----- diff --git a/src/test/keys/rsa8192-priv.pem b/src/test/keys/rsa8192-priv.pem deleted file mode 100644 index f05d15d..0000000 --- a/src/test/keys/rsa8192-priv.pem +++ /dev/null @@ -1,99 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- diff --git a/src/test/keys/rsa8192-pub.pem b/src/test/keys/rsa8192-pub.pem deleted file mode 100644 index 69a42a0..0000000 --- a/src/test/keys/rsa8192-pub.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN RSA PUBLIC KEY----- -MIIECgKCBAEA4pOMJstHRdtF7xhKYcLqf3+AeXepvFduP5doKMC8fPQmiTkTgBxk -Wh4CRlc9Y/QyQHj5kWDBrSyC1/PrQUuamwR2xpAS/FEmHpYdtQ6OVkgGOmbrqch/ -4qvpRpeKaZfWiW72ZB4/1KoVM+KzdgzJ9nVG3CFJGqdUUwo0MO1aMMa2VDWHL52n -hSAfUiSpBBsOOuHaKy1r4c2ZJV4AW90BnNNQ97kV00IrWolWl2ZlPbDP4+TarcTd -Hay6FyRmAycaoMPc0szlpIymTVXvWN9AyBRw8Ar5uadqw8GiBLhOd9KDfzQ3oE0a -5hZwY8KwTkKb6PTq8PYkj7CUzE12b2M9oBhmqrE88l9uqs0CnShKuF/EEuy6ClqY -4xI+y2Xh3lYQqVmiHGiB/hD0mnLYeBZ6JEzMhGB0fIzxyFRIP8voVljHwy/vTysW -6CH/ehVpFNsV4bM9DkKhGhux3NnszTNSrNWBohYwW5sl/TX2woLFRbaJOur9OW1+ -p4n67gtUnt8cXeE57d80XuaFvEf0JS+f5R70bJyYqqcviZhTOmHT3Kdm0FIvvCii -BZtbNP/31wtn3gWbmisb27meSnrAGRqeyocOnJRS66V/twXMJZMXi4em78yNl3n9 -Wijjvohct3z3TaSgb6OIdVN0QtZ1VRDvrzb8H3xBElHYYZLVAbDBGQawcvDGcgq2 -f1LN9IHB93KareEo8RhewbrUsh2i00Wu3Vhdwxs+449Y10vYeawE50YPIFeuMVji -O3FN/rimsLYBRAyr1G3kjAq0zqXl//wW3eTnVI33IN3FT0oH5rPGkTRhoobYEuep -69usxm5sn4oprPKB7owk+hn3FSb+n69G5a6Pv0DWMoDI3xLs9zUQCSw9iIE4uF5t -MGw4Fk8f8DLFYqpHf0fO8SIwRxhYj2ngALa5GNcgH13f5b6wa6el9J2ccbNuAmuh -RLoCGsczT2up9ZqRfD8WaOsGHiuQAV/RvNP1wNBlknWK6IQG68XxY6a+mQRxgOoo -Vg57Ge4LzUUXgT0onE3jvOXebEXnDq4A76J6lreW/kd9qVxpaFgLqS2Ci9JXCKNY -HnpkHMzWIWd3gOwfLSPb9kp08clxHnAwEmdBsYjy/AJIVVwKRjdIpwA47Jue29wz -RtTTtY8yJ1rKOwT3jbQ0ozXrdgBo3PfdNI0GG0RAwW0pfAnKGnNdPtGJpXrbJOr8 -PkPysF3cEcuQZrPH7Yi/ENFl8gx6Cq6NE90sxyHCD20A5QOjTQ+yZwJUNQyYJqpk -4g6JJJs3M4x42QORP1Uppn/B3zfDFuB/3SMMJGPSu9TU9TVX4uWI2ToS4a4I4RNC -qKoNb4rZMAgeN0fn1fvDanaQxpR4bcOaswIDAQAB ------END RSA PUBLIC KEY-----