sm text
parent
5b0e99c449
commit
93ac3cf32c
|
|
@ -0,0 +1,73 @@
|
|||
package com.czcb.scfs.api.core;
|
||||
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @author wangwei
|
||||
* @date 2024/2/20
|
||||
*/
|
||||
public final class KeyText {
|
||||
public static final String PRIVATE_TEXT_RSA = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD\n" +
|
||||
"iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9\n" +
|
||||
"6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d\n" +
|
||||
"lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL\n" +
|
||||
"Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24\n" +
|
||||
"NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+\n" +
|
||||
"HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H\n" +
|
||||
"Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n\n" +
|
||||
"wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob\n" +
|
||||
"SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH\n" +
|
||||
"RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr\n" +
|
||||
"DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev\n" +
|
||||
"5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo\n" +
|
||||
"LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q\n" +
|
||||
"QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp\n" +
|
||||
"MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT\n" +
|
||||
"YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE\n" +
|
||||
"0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo\n" +
|
||||
"Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+\n" +
|
||||
"K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj\n" +
|
||||
"dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU\n" +
|
||||
"eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g\n" +
|
||||
"Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF\n" +
|
||||
"EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu\n" +
|
||||
"ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ\n" +
|
||||
"E6ZWsef5uyYdyjLp2C4cl2A=\n" +
|
||||
"-----END PRIVATE KEY-----\n";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_RSA = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL\n" +
|
||||
"BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM\n" +
|
||||
"CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw\n" +
|
||||
"FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u\n" +
|
||||
"Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC\n" +
|
||||
"Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD\n" +
|
||||
"VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH\n" +
|
||||
"keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN\n" +
|
||||
"AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk\n" +
|
||||
"4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx\n" +
|
||||
"9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg\n" +
|
||||
"e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53\n" +
|
||||
"MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge\n" +
|
||||
"7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD\n" +
|
||||
"VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE\n" +
|
||||
"5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB\n" +
|
||||
"OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC\n" +
|
||||
"Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd\n" +
|
||||
"8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z\n" +
|
||||
"zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy\n" +
|
||||
"pwDwvSima1XX0KnrzLg+\n" +
|
||||
"-----END CERTIFICATE-----\n";
|
||||
|
||||
public static PrivateKey loadTestPrivateKeyRSA() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_RSA);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestRSA() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_RSA);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.czcb.scfs.api.core.cipher;
|
||||
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.czcb.scfs.api.core.KeyText;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
|
@ -16,9 +16,7 @@ class CertificateValidityTest {
|
|||
Assertions.assertNull(validity.getLongestCertificate(null));
|
||||
|
||||
ConcurrentHashMap<BigInteger, X509Certificate> certificates = new ConcurrentHashMap<>();
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(
|
||||
ClassLoader.getSystemResource("rsa_channel_certificate.pem").getPath());
|
||||
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
certificates.put(certificate.getSerialNumber(), certificate);
|
||||
Assertions.assertNotNull(validity.getLongestCertificate(certificates));
|
||||
}
|
||||
|
|
@ -26,7 +24,6 @@ class CertificateValidityTest {
|
|||
@Test
|
||||
void withinValidity() {
|
||||
CertificateValidity validity = new CertificateValidity();
|
||||
Assertions.assertTrue(validity.withinValidity(PemFile.loadX509FromAbsolutePath(
|
||||
ClassLoader.getSystemResource("rsa_channel_certificate.pem").getPath())));
|
||||
Assertions.assertTrue(validity.withinValidity(KeyText.loadTestRSA()));
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,6 @@ import com.czcb.scfs.api.core.cipher.*;
|
|||
import com.czcb.scfs.api.core.http.*;
|
||||
import com.czcb.scfs.api.core.util.DateTimes;
|
||||
import com.czcb.scfs.api.core.util.Nonce;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.czcb.scfs.api.core.util.Strings;
|
||||
import com.google.gson.Gson;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
|
@ -17,7 +16,6 @@ import org.mockserver.junit.jupiter.MockServerExtension;
|
|||
import org.mockserver.junit.jupiter.MockServerSettings;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -41,11 +39,8 @@ class ApacheHttpclientTest {
|
|||
}
|
||||
|
||||
private Profile profile(boolean compressionEnabled) {
|
||||
URL url = ClassLoader.getSystemResource("rsa_channel_private_key.pem");
|
||||
PrivateKey privateKey = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("rsa_channel_certificate.pem");
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(certificatesurl.getPath());
|
||||
PrivateKey privateKey = KeyText.loadTestPrivateKeyRSA();
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
List<X509Certificate> list = new ArrayList<>();
|
||||
list.add(certificate);
|
||||
CertificateProvider certificateProvider = new LocalCertificateProvider(list);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import com.czcb.scfs.api.core.exception.TimestampException;
|
|||
import com.czcb.scfs.api.core.http.*;
|
||||
import com.czcb.scfs.api.core.util.DateTimes;
|
||||
import com.czcb.scfs.api.core.util.Nonce;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.czcb.scfs.api.core.util.Strings;
|
||||
import com.google.gson.Gson;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
|
@ -17,7 +16,6 @@ import org.mockserver.client.MockServerClient;
|
|||
import org.mockserver.junit.jupiter.MockServerExtension;
|
||||
import org.mockserver.junit.jupiter.MockServerSettings;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -39,11 +37,8 @@ class ApacheHttpclientTestProxy {
|
|||
}
|
||||
|
||||
private Profile profile() {
|
||||
URL url = ClassLoader.getSystemResource("rsa_channel_private_key.pem");
|
||||
PrivateKey privateKey = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("rsa_channel_certificate.pem");
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(certificatesurl.getPath());
|
||||
PrivateKey privateKey = KeyText.loadTestPrivateKeyRSA();
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
List<X509Certificate> list = new ArrayList<>();
|
||||
list.add(certificate);
|
||||
CertificateProvider certificateProvider = new LocalCertificateProvider(list);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import com.czcb.scfs.api.core.exception.DecryptException;
|
|||
import com.czcb.scfs.api.core.http.*;
|
||||
import com.czcb.scfs.api.core.util.DateTimes;
|
||||
import com.czcb.scfs.api.core.util.Nonce;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.czcb.scfs.api.core.util.Strings;
|
||||
import com.google.gson.Gson;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
|
@ -17,7 +16,6 @@ import org.mockserver.client.MockServerClient;
|
|||
import org.mockserver.junit.jupiter.MockServerExtension;
|
||||
import org.mockserver.junit.jupiter.MockServerSettings;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -40,11 +38,8 @@ class ApacheHttpclientTestv2 {
|
|||
}
|
||||
|
||||
private Profile profile() {
|
||||
URL url = ClassLoader.getSystemResource("rsa_channel_private_key.pem");
|
||||
PrivateKey privateKey = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("rsa_channel_certificate.pem");
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(certificatesurl.getPath());
|
||||
PrivateKey privateKey = KeyText.loadTestPrivateKeyRSA();
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
List<X509Certificate> list = new ArrayList<>();
|
||||
list.add(certificate);
|
||||
CertificateProvider certificateProvider = new LocalCertificateProvider(list);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.czcb.scfs.api.core.exception.TimestampException;
|
|||
import com.czcb.scfs.api.core.http.*;
|
||||
import com.czcb.scfs.api.core.util.DateTimes;
|
||||
import com.czcb.scfs.api.core.util.Nonce;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.czcb.scfs.api.core.util.Strings;
|
||||
import com.google.gson.Gson;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
|
@ -18,7 +17,6 @@ import org.mockserver.client.MockServerClient;
|
|||
import org.mockserver.junit.jupiter.MockServerExtension;
|
||||
import org.mockserver.junit.jupiter.MockServerSettings;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -40,11 +38,8 @@ class ApacheHttpclientTestv3 {
|
|||
}
|
||||
|
||||
private Profile profile() {
|
||||
URL url = ClassLoader.getSystemResource("rsa_channel_private_key.pem");
|
||||
PrivateKey privateKey = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("rsa_channel_certificate.pem");
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(certificatesurl.getPath());
|
||||
PrivateKey privateKey = KeyText.loadTestPrivateKeyRSA();
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
List<X509Certificate> list = new ArrayList<>();
|
||||
list.add(certificate);
|
||||
CertificateProvider certificateProvider = new LocalCertificateProvider(list);
|
||||
|
|
|
|||
|
|
@ -3,10 +3,7 @@ package com.czcb.scfs.api.core.util;
|
|||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
class IOStreamTest {
|
||||
|
|
@ -29,9 +26,16 @@ class IOStreamTest {
|
|||
|
||||
@Test
|
||||
void loadStringFromPath() throws IOException {
|
||||
URL url = ClassLoader.getSystemResource("io_test_data.text");
|
||||
String data = IOStream.loadStringFromPath(url.getPath());
|
||||
Assertions.assertEquals("1234567890", data);
|
||||
File file = File.createTempFile("Test.", "io_test_data.text");
|
||||
try (FileOutputStream stream = new FileOutputStream(file)) {
|
||||
stream.write("1234567890".getBytes(StandardCharsets.UTF_8));
|
||||
stream.flush();
|
||||
|
||||
String data = IOStream.loadStringFromPath(file.getPath());
|
||||
Assertions.assertEquals("1234567890", data);
|
||||
} finally {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
1234567890
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL
|
||||
BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM
|
||||
CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw
|
||||
FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u
|
||||
Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC
|
||||
Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD
|
||||
VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH
|
||||
keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN
|
||||
AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk
|
||||
4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx
|
||||
9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg
|
||||
e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53
|
||||
MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge
|
||||
7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD
|
||||
VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE
|
||||
5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB
|
||||
OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC
|
||||
Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd
|
||||
8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z
|
||||
zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy
|
||||
pwDwvSima1XX0KnrzLg+
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD
|
||||
iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9
|
||||
6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d
|
||||
lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL
|
||||
Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24
|
||||
NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+
|
||||
HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H
|
||||
Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n
|
||||
wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob
|
||||
SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH
|
||||
RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr
|
||||
DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev
|
||||
5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo
|
||||
LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q
|
||||
QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp
|
||||
MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT
|
||||
YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE
|
||||
0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo
|
||||
Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+
|
||||
K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj
|
||||
dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU
|
||||
eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g
|
||||
Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF
|
||||
EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu
|
||||
ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ
|
||||
E6ZWsef5uyYdyjLp2C4cl2A=
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package com.czcb.scfs.api.rsa;
|
||||
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @author wangwei
|
||||
* @date 2024/2/20
|
||||
*/
|
||||
public final class KeyText {
|
||||
public static final String PRIVATE_TEXT_SM2 = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgEbNA+Qs8+nMspo7ikBiR9KRl8nc2\n" +
|
||||
"DL337j+2lmK9McCgCgYIKoEcz1UBgi2hRANCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo\n" +
|
||||
"/AjGWv28USDdp9nmBzj2Y+ts+iFbt5vTOoO+8z4L5ybEnKJ4\n" +
|
||||
"-----END PRIVATE KEY-----";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_SM2 = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIICKTCCAc+gAwIBAgIhALR78lDRPW3HLShp00DN+Lgw8s/TILZSWGw9SGH4bKNVMAoGCCqBHM9V\n" +
|
||||
"AYN1MIGNMQswCQYDVQQGEwJDTjESMBAGA1UECAwJ5rWZ5rGf55yBMRIwEAYDVQQHDAnmna3lt57l\n" +
|
||||
"uIIxITAfBgNVBAoMGOa1meaxn+eooOW3nuWVhuS4mumTtuihjDEYMBYGA1UECwwP5pWw5a2X6YeR\n" +
|
||||
"6J6N6YOoMRkwFwYDVQQDDBBzY2ZzLmN6Y2IuY29tLmNuMB4XDTI0MDIyMDAzMzgxOVoXDTI5MDIy\n" +
|
||||
"MDAzMzgxOVowgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcMCead\n" +
|
||||
"reW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgwFgYDVQQLDA/mlbDl\n" +
|
||||
"rZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20uY24wWTATBgcqhkjOPQIBBggqgRzP\n" +
|
||||
"VQGCLQNCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo/AjGWv28USDdp9nmBzj2Y+ts+iFb\n" +
|
||||
"t5vTOoO+8z4L5ybEnKJ4MAoGCCqBHM9VAYN1A0gAMEUCIQCx+TJJMHj5BZuylFt5pJaFrvJj9NaH\n" +
|
||||
"ggiLQndrrMctYgIgdhZLUVIZdVdmR0zMv3OWmeiI71B1d/80XLkISQF/qvg=\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
|
||||
|
||||
public static final String PRIVATE_TEXT_RSA = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD\n" +
|
||||
"iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9\n" +
|
||||
"6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d\n" +
|
||||
"lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL\n" +
|
||||
"Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24\n" +
|
||||
"NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+\n" +
|
||||
"HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H\n" +
|
||||
"Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n\n" +
|
||||
"wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob\n" +
|
||||
"SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH\n" +
|
||||
"RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr\n" +
|
||||
"DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev\n" +
|
||||
"5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo\n" +
|
||||
"LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q\n" +
|
||||
"QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp\n" +
|
||||
"MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT\n" +
|
||||
"YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE\n" +
|
||||
"0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo\n" +
|
||||
"Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+\n" +
|
||||
"K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj\n" +
|
||||
"dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU\n" +
|
||||
"eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g\n" +
|
||||
"Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF\n" +
|
||||
"EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu\n" +
|
||||
"ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ\n" +
|
||||
"E6ZWsef5uyYdyjLp2C4cl2A=\n" +
|
||||
"-----END PRIVATE KEY-----\n";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_RSA = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL\n" +
|
||||
"BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM\n" +
|
||||
"CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw\n" +
|
||||
"FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u\n" +
|
||||
"Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC\n" +
|
||||
"Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD\n" +
|
||||
"VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH\n" +
|
||||
"keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN\n" +
|
||||
"AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk\n" +
|
||||
"4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx\n" +
|
||||
"9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg\n" +
|
||||
"e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53\n" +
|
||||
"MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge\n" +
|
||||
"7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD\n" +
|
||||
"VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE\n" +
|
||||
"5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB\n" +
|
||||
"OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC\n" +
|
||||
"Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd\n" +
|
||||
"8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z\n" +
|
||||
"zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy\n" +
|
||||
"pwDwvSima1XX0KnrzLg+\n" +
|
||||
"-----END CERTIFICATE-----\n";
|
||||
|
||||
public static PrivateKey loadTestPrivateKeyRSA() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_RSA);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestRSA() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_RSA);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,11 +4,9 @@ import com.czcb.scfs.api.core.cipher.LocalCertificateProvider;
|
|||
import com.czcb.scfs.api.core.cipher.PrivacyDecryptor;
|
||||
import com.czcb.scfs.api.core.cipher.PrivacyEncryptor;
|
||||
import com.czcb.scfs.api.core.cipher.SecretCipher;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -20,12 +18,9 @@ class RsaPrivacyTest {
|
|||
String text = "123456789PrivacyDecryptorPrivacyDecryptorPrivacyDecryptor";
|
||||
|
||||
static {
|
||||
URL url = ClassLoader.getSystemResource("rsa_channel_private_key.pem");
|
||||
PrivateKey key = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("rsa_channel_certificate.pem");
|
||||
PrivateKey key = KeyText.loadTestPrivateKeyRSA();
|
||||
List<X509Certificate> certificates = new ArrayList<>();
|
||||
certificates.add(PemFile.loadX509FromAbsolutePath(certificatesurl.getPath()));
|
||||
certificates.add(KeyText.loadTestRSA());
|
||||
LocalCertificateProvider provider = new LocalCertificateProvider(certificates);
|
||||
privacy = new RsaPrivacy(key, provider);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
package com.czcb.scfs.api.rsa;
|
||||
|
||||
import com.czcb.scfs.api.core.DefaultChannel;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -14,11 +12,8 @@ class RsaProfileTest {
|
|||
|
||||
@Test
|
||||
void testRsaProfile() {
|
||||
URL url = ClassLoader.getSystemResource("rsa_channel_private_key.pem");
|
||||
PrivateKey key = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("rsa_channel_certificate.pem");
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(certificatesurl.getPath());
|
||||
PrivateKey key = KeyText.loadTestPrivateKeyRSA();
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
|
||||
RsaProfile profile = new RsaProfile.Builder()
|
||||
.channel(new DefaultChannel.Builder()
|
||||
|
|
@ -52,8 +47,8 @@ class RsaProfileTest {
|
|||
.channelNo("0000")
|
||||
.appNo("100001")
|
||||
.build())
|
||||
.privateKey(url.getPath())
|
||||
.addCertificate(certificatesurl.getPath())
|
||||
.privateKey(key)
|
||||
.addCertificate(certificate)
|
||||
.build();
|
||||
|
||||
encrypt = profile.getPrivacy().getSecretCipher().encrypt(secretKey.getBytes(StandardCharsets.UTF_8), text.getBytes(StandardCharsets.UTF_8));
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL
|
||||
BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM
|
||||
CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw
|
||||
FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u
|
||||
Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC
|
||||
Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD
|
||||
VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH
|
||||
keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN
|
||||
AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk
|
||||
4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx
|
||||
9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg
|
||||
e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53
|
||||
MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge
|
||||
7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD
|
||||
VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE
|
||||
5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB
|
||||
OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC
|
||||
Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd
|
||||
8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z
|
||||
zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy
|
||||
pwDwvSima1XX0KnrzLg+
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD
|
||||
iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9
|
||||
6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d
|
||||
lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL
|
||||
Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24
|
||||
NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+
|
||||
HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H
|
||||
Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n
|
||||
wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob
|
||||
SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH
|
||||
RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr
|
||||
DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev
|
||||
5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo
|
||||
LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q
|
||||
QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp
|
||||
MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT
|
||||
YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE
|
||||
0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo
|
||||
Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+
|
||||
K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj
|
||||
dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU
|
||||
eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g
|
||||
Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF
|
||||
EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu
|
||||
ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ
|
||||
E6ZWsef5uyYdyjLp2C4cl2A=
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
package com.czcb.scfs.api.service;
|
||||
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @author wangwei
|
||||
* @date 2024/2/20
|
||||
*/
|
||||
public final class KeyText {
|
||||
|
||||
public static final String PRIVATE_TEXT_SM2 = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgEbNA+Qs8+nMspo7ikBiR9KRl8nc2\n" +
|
||||
"DL337j+2lmK9McCgCgYIKoEcz1UBgi2hRANCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo\n" +
|
||||
"/AjGWv28USDdp9nmBzj2Y+ts+iFbt5vTOoO+8z4L5ybEnKJ4\n" +
|
||||
"-----END PRIVATE KEY-----";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_SM2 = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIICKTCCAc+gAwIBAgIhALR78lDRPW3HLShp00DN+Lgw8s/TILZSWGw9SGH4bKNVMAoGCCqBHM9V\n" +
|
||||
"AYN1MIGNMQswCQYDVQQGEwJDTjESMBAGA1UECAwJ5rWZ5rGf55yBMRIwEAYDVQQHDAnmna3lt57l\n" +
|
||||
"uIIxITAfBgNVBAoMGOa1meaxn+eooOW3nuWVhuS4mumTtuihjDEYMBYGA1UECwwP5pWw5a2X6YeR\n" +
|
||||
"6J6N6YOoMRkwFwYDVQQDDBBzY2ZzLmN6Y2IuY29tLmNuMB4XDTI0MDIyMDAzMzgxOVoXDTI5MDIy\n" +
|
||||
"MDAzMzgxOVowgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcMCead\n" +
|
||||
"reW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgwFgYDVQQLDA/mlbDl\n" +
|
||||
"rZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20uY24wWTATBgcqhkjOPQIBBggqgRzP\n" +
|
||||
"VQGCLQNCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo/AjGWv28USDdp9nmBzj2Y+ts+iFb\n" +
|
||||
"t5vTOoO+8z4L5ybEnKJ4MAoGCCqBHM9VAYN1A0gAMEUCIQCx+TJJMHj5BZuylFt5pJaFrvJj9NaH\n" +
|
||||
"ggiLQndrrMctYgIgdhZLUVIZdVdmR0zMv3OWmeiI71B1d/80XLkISQF/qvg=\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
|
||||
|
||||
public static final String PRIVATE_TEXT_RSA = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD\n" +
|
||||
"iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9\n" +
|
||||
"6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d\n" +
|
||||
"lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL\n" +
|
||||
"Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24\n" +
|
||||
"NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+\n" +
|
||||
"HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H\n" +
|
||||
"Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n\n" +
|
||||
"wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob\n" +
|
||||
"SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH\n" +
|
||||
"RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr\n" +
|
||||
"DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev\n" +
|
||||
"5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo\n" +
|
||||
"LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q\n" +
|
||||
"QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp\n" +
|
||||
"MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT\n" +
|
||||
"YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE\n" +
|
||||
"0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo\n" +
|
||||
"Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+\n" +
|
||||
"K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj\n" +
|
||||
"dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU\n" +
|
||||
"eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g\n" +
|
||||
"Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF\n" +
|
||||
"EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu\n" +
|
||||
"ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ\n" +
|
||||
"E6ZWsef5uyYdyjLp2C4cl2A=\n" +
|
||||
"-----END PRIVATE KEY-----\n";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_RSA = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL\n" +
|
||||
"BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM\n" +
|
||||
"CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw\n" +
|
||||
"FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u\n" +
|
||||
"Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC\n" +
|
||||
"Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD\n" +
|
||||
"VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH\n" +
|
||||
"keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN\n" +
|
||||
"AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk\n" +
|
||||
"4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx\n" +
|
||||
"9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg\n" +
|
||||
"e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53\n" +
|
||||
"MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge\n" +
|
||||
"7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD\n" +
|
||||
"VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE\n" +
|
||||
"5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB\n" +
|
||||
"OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC\n" +
|
||||
"Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd\n" +
|
||||
"8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z\n" +
|
||||
"zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy\n" +
|
||||
"pwDwvSima1XX0KnrzLg+\n" +
|
||||
"-----END CERTIFICATE-----\n";
|
||||
|
||||
public static PrivateKey loadTestPrivateKeyRSA() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_RSA);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestRSA() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_RSA);
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,6 @@ import com.czcb.scfs.api.core.http.DefaultApiClientBuilder;
|
|||
import com.czcb.scfs.api.core.http.DefaultHttpProfile;
|
||||
import com.czcb.scfs.api.core.util.DateTimes;
|
||||
import com.czcb.scfs.api.core.util.Nonce;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.czcb.scfs.api.core.util.Strings;
|
||||
import com.czcb.scfs.api.service.cipher.TestPrivacy;
|
||||
import com.czcb.scfs.api.service.cipher.TestProfile;
|
||||
|
|
@ -16,7 +15,6 @@ import com.czcb.scfs.api.service.cipher.TestSigner;
|
|||
import com.czcb.scfs.api.service.cipher.TestVerifier;
|
||||
import org.mockserver.model.HttpResponse;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
|
@ -39,11 +37,9 @@ public class MockResponse {
|
|||
}
|
||||
|
||||
private static Profile profile() {
|
||||
URL url = ClassLoader.getSystemResource("channel_private_key.pem");
|
||||
PrivateKey privateKey = PemFile.loadPrivateKeyFromAbsolutePath(url.getPath());
|
||||
PrivateKey privateKey = KeyText.loadTestPrivateKeyRSA();
|
||||
|
||||
URL certificatesurl = ClassLoader.getSystemResource("channel_certificate.pem");
|
||||
X509Certificate certificate = PemFile.loadX509FromAbsolutePath(certificatesurl.getPath());
|
||||
X509Certificate certificate = KeyText.loadTestRSA();
|
||||
List<X509Certificate> list = new ArrayList<>();
|
||||
list.add(certificate);
|
||||
CertificateProvider certificateProvider = new LocalCertificateProvider(list);
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDizCCAnOgAwIBAgIUNFJ8KcZ1F3AOTLWGKAbqGdcGDSgwDQYJKoZIhvcNAQEL
|
||||
BQAwVTELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB1poSmlhbmcxETAPBgNVBAcMCEhh
|
||||
bmd6aG91MSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjQw
|
||||
MjA3MTI0NDA3WhcNMjcwMjA2MTI0NDA3WjBVMQswCQYDVQQGEwJDTjEQMA4GA1UE
|
||||
CAwHWmhKaWFuZzERMA8GA1UEBwwISGFuZ3pob3UxITAfBgNVBAoMGEludGVybmV0
|
||||
IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||
ALc2CE5b1FDUu/NXE3kAqWs4AWmhfUDpczJtK1+kf3phT8/9GhtmtFH7otEAULn/
|
||||
Fd64sVFUf/RspMZupPLxDaabbZ0GOHAJzkOXHgJrKYSnZU7uBUjQO3Iy8bT9Tjxb
|
||||
mHZcGm5VRw4ZIg+YhSSmX5cyzRna3cY5B9QpnahJSpiqtD3qUZqdx0d9aWTwcuhs
|
||||
IYQWNc2ACos5WnY6k5nUPNM1NRZgLDEYiEfTXwCfF3sJvhgPBCISCY2ECQR4q/b7
|
||||
lKPzwBXqayR9PTr81+pnHxIHgPNaAmW5uZjnz1LM3Fiv0eplkdBhAP6hh/78yvrI
|
||||
63y9NUV91RbnP8wj9GS3FBsCAwEAAaNTMFEwHQYDVR0OBBYEFNowuYm9EFm1Za1l
|
||||
jYEH8pcq3FVCMB8GA1UdIwQYMBaAFNowuYm9EFm1Za1ljYEH8pcq3FVCMA8GA1Ud
|
||||
EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAENNef+3/iJ8DlIVRxEebzmu
|
||||
Hw7+F2MJzar7k4kVMKq9cTARed5BLWyY8u9Z3q+hWrHHC1yV5u0iACscAjwe8Du1
|
||||
36fi5/6Y7V4xCAbditlJdr+D/vQXmPOMGIcbjeTCx7gZobupINaE4vXwou79KsvB
|
||||
SSyX8AqALctO8TNBgs7YNKtD5f0tUKx1mPUZlLVzv2vkJNls3+9iYQtzWNyQ8UAW
|
||||
zFkRUHtB0od3gHMdCaBc5WrO2dxZ5WQyk/DaCXnvmX+3FDyO0blcll4owqaDCNEu
|
||||
pe6xFxQ547XVu/VGjY8oqksW/uGYQnkMv3As1cFRf0WGZw31JUxZR56+fZRjhYs=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3NghOW9RQ1Lvz
|
||||
VxN5AKlrOAFpoX1A6XMybStfpH96YU/P/RobZrRR+6LRAFC5/xXeuLFRVH/0bKTG
|
||||
bqTy8Q2mm22dBjhwCc5Dlx4CaymEp2VO7gVI0DtyMvG0/U48W5h2XBpuVUcOGSIP
|
||||
mIUkpl+XMs0Z2t3GOQfUKZ2oSUqYqrQ96lGancdHfWlk8HLobCGEFjXNgAqLOVp2
|
||||
OpOZ1DzTNTUWYCwxGIhH018Anxd7Cb4YDwQiEgmNhAkEeKv2+5Sj88AV6mskfT06
|
||||
/NfqZx8SB4DzWgJlubmY589SzNxYr9HqZZHQYQD+oYf+/Mr6yOt8vTVFfdUW5z/M
|
||||
I/RktxQbAgMBAAECggEACs+vccr4Hm+kn67LFrWJSdXGOjuDWVSYAv5viXdQO80z
|
||||
mSxwYUmQPn5A6gsWDcPAa0zZedkoq9MgGMLoDPCt7jT3JPBRsvAr3HqLFM10vRU7
|
||||
ud/7LoQgiJP6W28kh2ny90O8Hjf+DMDtl59XzAUyrYjGkvitZEhymSco3Ii7/teK
|
||||
N74XJjWwZrNpqommqUrSfKiM/alRIEpZ3oLi9zivAah0lLKRpUjGLsNPHjk7JCiZ
|
||||
6vudyo6prjA3rPuKt56M0BmDReLKQlEWpWAAIWA9BP3JG5+qrjFh0Zxli/YPruAh
|
||||
VvoU4TiY5FeHDAqmFlOYS4DCSkejw0RiA7sqQbEBcQKBgQDy2AhHpGin6Vxxi6Jr
|
||||
LMvn08Hkqeg9dcatSPP7pjDpBlLqOTDuy4jd9B/gkfUAuR/K13t/CbQubQUCUIgu
|
||||
uoEaWpHz4txoCbS6WL88rgxKZylYXq8fopXbMwxhZnsLZCgDFwNwVfKIzK50WQn3
|
||||
Jfzgu9c3a9+Wrh5ww7BwhTtzVwKBgQDBIvYD2hXLL3OC/rp3oQyrDMIBB0j58jjx
|
||||
hZMbJN3UPbd4X9KLHrRI36wLMd+0hQf0KZIwWnzocSxVv8Yk2sc8X3hB5ANd++Qe
|
||||
A+nV7R3RAvFZQF8YCW+B4Q4DrYED3RwSUOJWvt4+f63rvSMY9oidJj14und+mmCT
|
||||
iazMDsBO3QKBgB0qYvwvu74G4eplKdGTZL3oCc5rtY/EGGNxcpQTpqYl80lcKwtS
|
||||
+JInorh27yTyFuZmsNdWFATLZSGdCG4MSjsfC45t/ailGcaTqAwinylEcIvDe2bi
|
||||
QPs9i0wbYcXBdqjAV9JjECjr5DvnAbJkJpXbGYL3erf/G3rRldw9tCErAoGAcBpy
|
||||
4dl8POvWCHsCkN2SFNba5O3tleba1pXJxT+o4sDP9bbo5odz7bimi/ju+EEfVMGs
|
||||
cRSU2/aU3VDrGglDC+/+RYCr06mZxzJOUDXJ0L/8humuSK1xY9nV4Jyc/jkhSiBY
|
||||
wDEZnv1NXj/yV1MCCPVhSOoy4fGJjRmkiu0lAqECgYBEut4dBG0DHDNoKnsZDBpc
|
||||
k13KzC6qpI635AwUNRKdexvE8/B8mSmIbrp1i9JaN4rZyctrWvg1qi03089YYiX/
|
||||
IIop//+L5dB7urjuw6xMT7f0tYwMrKZiCtM74GeTQq+tzL4Yv1tlMb4BltzBPJKo
|
||||
I4IGuvCn60HbcLo1xa9PeQ==
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -19,6 +19,6 @@ public class Sm2Signer extends AbstractSigner {
|
|||
* @param privateKey API私钥
|
||||
*/
|
||||
public Sm2Signer(PrivateKey privateKey) {
|
||||
super("SM2-WITH-SM3", "SM2", privateKey);
|
||||
super("SM3withSM2", "SM2", privateKey);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
package com.czcb.scfs.api.sm;
|
||||
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.tencent.kona.KonaProvider;
|
||||
|
||||
import java.security.PrivateKey;
|
||||
import java.security.Security;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @author wangwei
|
||||
* @date 2024/2/20
|
||||
*/
|
||||
public final class SMKeyText {
|
||||
static {
|
||||
Security.addProvider(new KonaProvider());
|
||||
}
|
||||
|
||||
public static final String PRIVATE_TEXT_SM2 = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgEbNA+Qs8+nMspo7ikBiR9KRl8nc2\n" +
|
||||
"DL337j+2lmK9McCgCgYIKoEcz1UBgi2hRANCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo\n" +
|
||||
"/AjGWv28USDdp9nmBzj2Y+ts+iFbt5vTOoO+8z4L5ybEnKJ4\n" +
|
||||
"-----END PRIVATE KEY-----";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_SM2 = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIICKTCCAc+gAwIBAgIhALR78lDRPW3HLShp00DN+Lgw8s/TILZSWGw9SGH4bKNVMAoGCCqBHM9V\n" +
|
||||
"AYN1MIGNMQswCQYDVQQGEwJDTjESMBAGA1UECAwJ5rWZ5rGf55yBMRIwEAYDVQQHDAnmna3lt57l\n" +
|
||||
"uIIxITAfBgNVBAoMGOa1meaxn+eooOW3nuWVhuS4mumTtuihjDEYMBYGA1UECwwP5pWw5a2X6YeR\n" +
|
||||
"6J6N6YOoMRkwFwYDVQQDDBBzY2ZzLmN6Y2IuY29tLmNuMB4XDTI0MDIyMDAzMzgxOVoXDTI5MDIy\n" +
|
||||
"MDAzMzgxOVowgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcMCead\n" +
|
||||
"reW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgwFgYDVQQLDA/mlbDl\n" +
|
||||
"rZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20uY24wWTATBgcqhkjOPQIBBggqgRzP\n" +
|
||||
"VQGCLQNCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo/AjGWv28USDdp9nmBzj2Y+ts+iFb\n" +
|
||||
"t5vTOoO+8z4L5ybEnKJ4MAoGCCqBHM9VAYN1A0gAMEUCIQCx+TJJMHj5BZuylFt5pJaFrvJj9NaH\n" +
|
||||
"ggiLQndrrMctYgIgdhZLUVIZdVdmR0zMv3OWmeiI71B1d/80XLkISQF/qvg=\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
|
||||
|
||||
public static final String PRIVATE_TEXT_RSA = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD\n" +
|
||||
"iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9\n" +
|
||||
"6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d\n" +
|
||||
"lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL\n" +
|
||||
"Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24\n" +
|
||||
"NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+\n" +
|
||||
"HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H\n" +
|
||||
"Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n\n" +
|
||||
"wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob\n" +
|
||||
"SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH\n" +
|
||||
"RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr\n" +
|
||||
"DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev\n" +
|
||||
"5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo\n" +
|
||||
"LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q\n" +
|
||||
"QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp\n" +
|
||||
"MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT\n" +
|
||||
"YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE\n" +
|
||||
"0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo\n" +
|
||||
"Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+\n" +
|
||||
"K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj\n" +
|
||||
"dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU\n" +
|
||||
"eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g\n" +
|
||||
"Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF\n" +
|
||||
"EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu\n" +
|
||||
"ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ\n" +
|
||||
"E6ZWsef5uyYdyjLp2C4cl2A=\n" +
|
||||
"-----END PRIVATE KEY-----\n";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_RSA = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL\n" +
|
||||
"BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM\n" +
|
||||
"CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw\n" +
|
||||
"FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u\n" +
|
||||
"Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC\n" +
|
||||
"Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD\n" +
|
||||
"VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH\n" +
|
||||
"keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN\n" +
|
||||
"AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk\n" +
|
||||
"4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx\n" +
|
||||
"9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg\n" +
|
||||
"e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53\n" +
|
||||
"MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge\n" +
|
||||
"7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD\n" +
|
||||
"VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE\n" +
|
||||
"5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB\n" +
|
||||
"OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC\n" +
|
||||
"Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd\n" +
|
||||
"8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z\n" +
|
||||
"zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy\n" +
|
||||
"pwDwvSima1XX0KnrzLg+\n" +
|
||||
"-----END CERTIFICATE-----\n";
|
||||
|
||||
public static PrivateKey loadTestPrivateKeySM2() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_SM2, "EC", KonaProvider.NAME);
|
||||
}
|
||||
|
||||
public static PrivateKey loadTestPrivateKeyRSA() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_RSA);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestSM2() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_SM2, KonaProvider.NAME);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestRSA() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_RSA);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,42 +1,49 @@
|
|||
//package com.czcb.scfs.api.sm;
|
||||
//
|
||||
//import com.czcb.scfs.api.core.DefaultChannel;
|
||||
//import org.junit.jupiter.api.Assertions;
|
||||
//import org.junit.jupiter.api.Test;
|
||||
//
|
||||
//import java.nio.charset.StandardCharsets;
|
||||
//
|
||||
//class SmProfileTest {
|
||||
// @Test
|
||||
// void test() {
|
||||
// SmProfile profile = new SmProfile.Builder()
|
||||
// .channel(new DefaultChannel.Builder()
|
||||
// .channelNo("0000")
|
||||
// .appNo("100001")
|
||||
// .build())
|
||||
// .privateKey(ClassLoader.getSystemResource("private_key.pem").getPath())
|
||||
// .addCertificate(ClassLoader.getSystemResource("certificate.pem").getPath())
|
||||
// .build();
|
||||
//
|
||||
// Assertions.assertNotNull(profile);
|
||||
//
|
||||
// String message = "1234567";
|
||||
// String signResult = profile.getSignature().getSigner().sign(message).getResult();
|
||||
// Assertions.assertTrue(profile.getSignature().getVerifier().verify(null, message, signResult));
|
||||
//
|
||||
// Assertions.assertEquals("0000", profile.getChannel().getChannelNo());
|
||||
// Assertions.assertEquals("100001", profile.getChannel().getAppNo());
|
||||
//
|
||||
// String text = "1234567890";
|
||||
// String ciphertext = profile.getPrivacy().getEncryptor().encrypt(text);
|
||||
// Assertions.assertEquals(text, profile.getPrivacy().getDecryptor().decrypt(ciphertext));
|
||||
//
|
||||
// String secretKey = "abcdef1234567890";
|
||||
// String encrypt = profile.getPrivacy().getSecretCipher().encrypt(secretKey.getBytes(StandardCharsets.UTF_8), text.getBytes(StandardCharsets.UTF_8));
|
||||
// String decrypt = profile.getPrivacy().getSecretCipher().decrypt(secretKey.getBytes(StandardCharsets.UTF_8), encrypt.getBytes(StandardCharsets.UTF_8));
|
||||
// Assertions.assertEquals(text, decrypt);
|
||||
//
|
||||
// Assertions.assertNotNull(profile.getPrivacy().getDecryptor().getPrivateKey());
|
||||
// Assertions.assertNotNull(profile.getPrivacy().getEncryptor().getPublicKey());
|
||||
// }
|
||||
//}
|
||||
package com.czcb.scfs.api.sm;
|
||||
|
||||
import com.czcb.scfs.api.core.DefaultChannel;
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.tencent.kona.KonaProvider;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import static com.czcb.scfs.api.sm.SMKeyText.CERTIFICATE_TEXT_SM2;
|
||||
import static com.czcb.scfs.api.sm.SMKeyText.PRIVATE_TEXT_SM2;
|
||||
|
||||
class SmProfileTest {
|
||||
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
SmProfile profile = new SmProfile.Builder()
|
||||
.channel(new DefaultChannel.Builder()
|
||||
.channelNo("0000")
|
||||
.appNo("100001")
|
||||
.build())
|
||||
.privateKey(PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_SM2, "EC", KonaProvider.NAME))
|
||||
.addCertificate(PemFile.loadX509FromString(CERTIFICATE_TEXT_SM2, KonaProvider.NAME))
|
||||
.build();
|
||||
|
||||
Assertions.assertNotNull(profile);
|
||||
|
||||
String message = "1234567";
|
||||
String signResult = profile.getSignature().getSigner().sign(message).getResult();
|
||||
Assertions.assertTrue(profile.getSignature().getVerifier().verify(null, message, signResult));
|
||||
|
||||
Assertions.assertEquals("0000", profile.getChannel().getChannelNo());
|
||||
Assertions.assertEquals("100001", profile.getChannel().getAppNo());
|
||||
|
||||
String text = "1234567890";
|
||||
String ciphertext = profile.getPrivacy().getEncryptor().encrypt(text);
|
||||
Assertions.assertEquals(text, profile.getPrivacy().getDecryptor().decrypt(ciphertext));
|
||||
|
||||
String secretKey = "abcdef1234567890";
|
||||
String encrypt = profile.getPrivacy().getSecretCipher().encrypt(secretKey.getBytes(StandardCharsets.UTF_8), text.getBytes(StandardCharsets.UTF_8));
|
||||
String decrypt = profile.getPrivacy().getSecretCipher().decrypt(secretKey.getBytes(StandardCharsets.UTF_8), encrypt.getBytes(StandardCharsets.UTF_8));
|
||||
Assertions.assertEquals(text, decrypt);
|
||||
|
||||
Assertions.assertNotNull(profile.getPrivacy().getDecryptor().getPrivateKey());
|
||||
Assertions.assertNotNull(profile.getPrivacy().getEncryptor().getPublicKey());
|
||||
}
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICyTCCAmygAwIBAgIUVOf1ntjfRXDPsUeA6oFS1FpnXuYwDAYIKoEcz1UBg3UF
|
||||
ADCBjTFHMEUGA1UEAww+U2hlbiBaaGVuIGlUcnVzQ2hpbmEgQ2xhc3MgRW50ZXJw
|
||||
cmlzZSBTdWJzY3JpYmVyIENBIFNNMiAtIFRlc3QxGDAWBgNVBAsMD+a1i+ivlemD
|
||||
qOivleeUqDEbMBkGA1UECgwS5aSp6K+a5a6J5L+h6K+V55SoMQswCQYDVQQGEwJD
|
||||
TjAeFw0yMjA4MDQxMjE0MTlaFw0yMzA5MDMxMjE0MTlaMGsxCzAJBgNVBAYTAkNO
|
||||
MRswGQYDVQQKDBLlvq7kv6HllYbmiLfns7vnu58xKjAoBgNVBAsMIea3seWcs+W4
|
||||
guS8n+iNo+enkeaKgOaciemZkOWFrOWPuDETMBEGA1UEAwwKMjQ4MzI4MTc2MTBZ
|
||||
MBMGByqGSM49AgEGCCqBHM9VAYItA0IABHvNR/deoZ0EwKcrTacPV90bP5M3zF3R
|
||||
JBiBuRNDGTm/aaVe9rRnEMfhckUj0PZG3WlNJIOXb26FDUZjePqLL36jgcgwgcUw
|
||||
DAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBsAwHwYDVR0jBBgwFoAUK0Y6T9Ge
|
||||
LM7UH4bC1j2avycoZPcwHQYDVR0OBBYEFBmE5STz2WNsXVrgclXrxsl6SCihMGUG
|
||||
A1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVzLmNvbS5jbi9wdWJsaWMv
|
||||
aXRydXNjcmw/Q0E9NzMzNUExQUYzNzRBMUU4QjQwM0FCMUFDMkQwNjVDQUU3NUNB
|
||||
QjIzNjAMBggqgRzPVQGDdQUAA0kAMEYCIQDK0r6D8VyiUVMfRnAfz40ZtiG8DJEF
|
||||
6Rn41oZ3qPW1aQIhAKtn5sKME+thLQFeyV70VSsraZ7h9Fccal2WzI2oCdtY
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQg/U9Saz5ceDGQhFBM
|
||||
f/cHIh2+q5Lzvhrb8L2SI4sPUR+gCgYIKoEcz1UBgi2hRANCAAR7zUf3XqGdBMCn
|
||||
K02nD1fdGz+TN8xd0SQYgbkTQxk5v2mlXva0ZxDH4XJFI9D2Rt1pTSSDl29uhQ1G
|
||||
Y3j6iy9+
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -6,7 +6,6 @@ import com.czcb.scfs.api.rsa.RsaProfile;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.InputStream;
|
||||
|
|
@ -39,13 +38,12 @@ public class RsaConfiguration extends AbstractAutoConfiguration {
|
|||
if (Objects.equals(getProperties().getCipher().getStoreType(), StoreType.FILE)) {
|
||||
return PemFile.loadPrivateKeyFromAbsolutePath(getProperties().getCipher().getChannelPrivateKey());
|
||||
}
|
||||
|
||||
|
||||
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(getProperties().getCipher().getChannelPrivateKey());
|
||||
return PemFile.loadPrivateKeyFromStream(inputStream);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
public RsaProfile rsaProfile() {
|
||||
return new RsaProfile.Builder()
|
||||
.channel(getChannel())
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.tencent.kona.KonaProvider;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.InputStream;
|
||||
|
|
@ -38,18 +39,19 @@ public class SmConfiguration extends AbstractAutoConfiguration {
|
|||
if (Objects.equals(getProperties().getCipher().getStoreType(), StoreType.FILE)) {
|
||||
return PemFile.loadPrivateKeyFromAbsolutePath(properties.getCipher().getChannelPrivateKey(), "EC", KonaProvider.NAME);
|
||||
}
|
||||
|
||||
|
||||
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(getProperties().getCipher().getChannelPrivateKey());
|
||||
return PemFile.loadPrivateKeyFromStream(inputStream, "EC", KonaProvider.NAME);
|
||||
}
|
||||
|
||||
// @Bean
|
||||
// public SmProfile smProfile() {
|
||||
// return new SmProfile.Builder()
|
||||
// .channel(getChannel())
|
||||
// .httpProfile(getHttpProfile())
|
||||
// .privateKey(getPrivateKey())
|
||||
// .addCertificate(getCertificate())
|
||||
// .build();
|
||||
// }
|
||||
@Bean
|
||||
@Primary
|
||||
public SmProfile smProfile() {
|
||||
return new SmProfile.Builder()
|
||||
.channel(getChannel())
|
||||
.httpProfile(getHttpProfile())
|
||||
.privateKey(getPrivateKey())
|
||||
.addCertificate(getCertificate())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
package com.czcb.scfs.api.test;
|
||||
|
||||
import com.czcb.scfs.api.core.util.PemFile;
|
||||
import com.tencent.kona.KonaProvider;
|
||||
|
||||
import java.security.PrivateKey;
|
||||
import java.security.Security;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @author wangwei
|
||||
* @date 2024/2/20
|
||||
*/
|
||||
public final class SMKeyText {
|
||||
static {
|
||||
Security.addProvider(new KonaProvider());
|
||||
}
|
||||
|
||||
public static final String PRIVATE_TEXT_SM2 = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgEbNA+Qs8+nMspo7ikBiR9KRl8nc2\n" +
|
||||
"DL337j+2lmK9McCgCgYIKoEcz1UBgi2hRANCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo\n" +
|
||||
"/AjGWv28USDdp9nmBzj2Y+ts+iFbt5vTOoO+8z4L5ybEnKJ4\n" +
|
||||
"-----END PRIVATE KEY-----";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_SM2 = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIICKTCCAc+gAwIBAgIhALR78lDRPW3HLShp00DN+Lgw8s/TILZSWGw9SGH4bKNVMAoGCCqBHM9V\n" +
|
||||
"AYN1MIGNMQswCQYDVQQGEwJDTjESMBAGA1UECAwJ5rWZ5rGf55yBMRIwEAYDVQQHDAnmna3lt57l\n" +
|
||||
"uIIxITAfBgNVBAoMGOa1meaxn+eooOW3nuWVhuS4mumTtuihjDEYMBYGA1UECwwP5pWw5a2X6YeR\n" +
|
||||
"6J6N6YOoMRkwFwYDVQQDDBBzY2ZzLmN6Y2IuY29tLmNuMB4XDTI0MDIyMDAzMzgxOVoXDTI5MDIy\n" +
|
||||
"MDAzMzgxOVowgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcMCead\n" +
|
||||
"reW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgwFgYDVQQLDA/mlbDl\n" +
|
||||
"rZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20uY24wWTATBgcqhkjOPQIBBggqgRzP\n" +
|
||||
"VQGCLQNCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo/AjGWv28USDdp9nmBzj2Y+ts+iFb\n" +
|
||||
"t5vTOoO+8z4L5ybEnKJ4MAoGCCqBHM9VAYN1A0gAMEUCIQCx+TJJMHj5BZuylFt5pJaFrvJj9NaH\n" +
|
||||
"ggiLQndrrMctYgIgdhZLUVIZdVdmR0zMv3OWmeiI71B1d/80XLkISQF/qvg=\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
|
||||
|
||||
public static final String PRIVATE_TEXT_RSA = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD\n" +
|
||||
"iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9\n" +
|
||||
"6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d\n" +
|
||||
"lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL\n" +
|
||||
"Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24\n" +
|
||||
"NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+\n" +
|
||||
"HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H\n" +
|
||||
"Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n\n" +
|
||||
"wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob\n" +
|
||||
"SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH\n" +
|
||||
"RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr\n" +
|
||||
"DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev\n" +
|
||||
"5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo\n" +
|
||||
"LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q\n" +
|
||||
"QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp\n" +
|
||||
"MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT\n" +
|
||||
"YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE\n" +
|
||||
"0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo\n" +
|
||||
"Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+\n" +
|
||||
"K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj\n" +
|
||||
"dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU\n" +
|
||||
"eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g\n" +
|
||||
"Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF\n" +
|
||||
"EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu\n" +
|
||||
"ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ\n" +
|
||||
"E6ZWsef5uyYdyjLp2C4cl2A=\n" +
|
||||
"-----END PRIVATE KEY-----\n";
|
||||
|
||||
public static final String CERTIFICATE_TEXT_RSA = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL\n" +
|
||||
"BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM\n" +
|
||||
"CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw\n" +
|
||||
"FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u\n" +
|
||||
"Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC\n" +
|
||||
"Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD\n" +
|
||||
"VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH\n" +
|
||||
"keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN\n" +
|
||||
"AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk\n" +
|
||||
"4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx\n" +
|
||||
"9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg\n" +
|
||||
"e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53\n" +
|
||||
"MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge\n" +
|
||||
"7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD\n" +
|
||||
"VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE\n" +
|
||||
"5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB\n" +
|
||||
"OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC\n" +
|
||||
"Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd\n" +
|
||||
"8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z\n" +
|
||||
"zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy\n" +
|
||||
"pwDwvSima1XX0KnrzLg+\n" +
|
||||
"-----END CERTIFICATE-----\n";
|
||||
|
||||
public static PrivateKey loadTestPrivateKeySM2() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_SM2, "EC", KonaProvider.NAME);
|
||||
}
|
||||
|
||||
public static PrivateKey loadTestPrivateKeyRSA() {
|
||||
return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_SM2);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestSM2() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_SM2, KonaProvider.NAME);
|
||||
}
|
||||
|
||||
public static X509Certificate loadTestRSA() {
|
||||
return PemFile.loadX509FromString(CERTIFICATE_TEXT_RSA);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue