| Name | Type | Description |
|---|---|---|
| signCert | byte[] | 인증서 경로 지정 |
| fileSavePath | String | 인증서 폐기 목록 경로 |
| Name | Type | Description |
|---|---|---|
| certValidation | boolean | 인증서 유효성 여부 |
try {
CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
if ( !cert.isValid( true, CRLPath) )
result.put("certValidation", cert.getErrorMsg());
else
result.put("certValidation", true);
} catch (Exception e) {
result.put("certValidation", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| signCert | byte[] | 인증서 경로 지정 |
| Name | Type | Description |
|---|---|---|
| subjectDn | String | 인증서 DN |
try {
CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
String strSubjectDn = cert.getSubjectDN();
result.put("subjectDn", strSubjectDn);
} catch (Exception e) {
result.put("subjectDn", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| signCert | byte[] | 인증서 경로 지정 |
| Name | Type | Description |
|---|---|---|
| issuerDn | String | 발급기관 DN |
try {
CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
String strIssuerDn = cert.getIssuerDN();
result.put("issuerDn", strIssuerDn);
} catch (Exception e) {
result.put("issuerDn", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| signCert | byte[] | 인증서 경로 지정 |
| Name | Type | Description |
|---|---|---|
| serialNumber | String | 일련번호 |
try {
CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
String strSerialNumber = cert.getSerialNumber();
result.put("serialNumber", strSerialNumber);
} catch (Exception e) {
result.put("serialNumber", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| signCert | byte[] | 인증서 경로 지정 |
| Name | Type | Description |
|---|---|---|
| policyOid | String | 인증서 정책 OID |
try {
CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
String strPolicyOid = cert.getPolicyOid();
result.put("policyOid", strPolicyOid);
} catch (Exception e) {
result.put("policyOid", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| signKeyBytes | byte | 개인키 바이트 값 |
| passwd | String | 개인키 패스워드 |
| Name | Type | Description |
|---|---|---|
| signedData | String | 전자서명 데이터 |
try {
byte[] key = FileUtil.readBytesFromFileName(keyPath);
SignUtil sign = new SignUtil();
String strOriginalMessage = "ABC";
sign.signInit( key, passwd );
sign.signUpdate( strOriginalMessage.getBytes() );
byte[] SignedData = sign.signFinal();
result.put("SignedData", Base64Util.encode( SignedData ));
} catch (Exception e) {
result.put("error", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| certBytes | byte | 인증서 바이트 값 |
| 필드 | 타입 | 설명 |
|---|---|---|
| 응답 없음 | ||
try {
byte[] key = FileUtil.readBytesFromFileName(kmKeyPath);
String kmCert = CertUtil.derToPem(FileUtil.readBytesFromFileName(kmCertPath));
SignUtil sign = new SignUtil();
String strOriginalMessage = "ABC";
sign.signInit( key, passwd );
sign.signUpdate( strOriginalMessage.getBytes() );
byte[] strUserSignValue = sign.signFinal();
String SignValue = Base64Util.encode( strUserSignValue );
sign.verifyInit( key );
sign.verifyUpdate( strOriginalMessage.getBytes() );
if ( !sign.verifyFinal( Base64Util.decode( SignValue ) ))
result.put("verifyResult", sign.getErrorMsg());
else
result.put("verifyResult", "true");
}
catch (Exception e) {
result.put("verifyResult", e.getMessage());
}
| Name | Type | Description |
|---|---|---|
| certBytes | byte | 인증서 바이트 값 |
| Name | Type | Description |
|---|---|---|
| encData | String | 인증서를 이용해 암호화한 데이터 |
try {
CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(signCertPath));
CipherUtil cipher = new CipherUtil("RSA");
String data = "ABC";
cipher.encryptInit(cert.getCertBytes());
byte[] encData = cipher.encryptUpdate(data.getBytes());
cipher.encryptFinal();
result.put("encData", Base64Util.encode(encData));
} catch (Exception e) {
result.put("encData", cipher.getErrorMsg());
}
| Name | Type | Description |
|---|---|---|
| encKeyBytes | byte | 복호화에 필요한 암호화용 개인키 |
| passwd | String | 개인키 패스워드 |
| Name | Type | Description |
|---|---|---|
| encData | String | 인증서를 이용해 복호화한 데이터 |
try {
byte[] key = FileUtil.readBytesFromFileName(kmKeyPath);
String kmCert = CertUtil.derToPem(FileUtil.readBytesFromFileName(kmCertPath));
CipherUtil cipher = new CipherUtil("RSA");
String data = "ABC";
cipher.encryptInit(kmCert.getBytes());
byte[] encData = cipher.encryptUpdate(data.getBytes());
cipher.encryptFinal();
cipher.decryptInit(key, "signgate1!");
byte[] decData = cipher.decryptUpdate(encData);
cipher.decryptFinal();
result.put("decData", new String(decData));
} catch (Exception e) {
result.put("error", cipher.getErrorMsg());
}
| Name | Type | Description |
|---|---|---|
| signPriKey | byte | 개인키 |
| passwd | String | 패스워드 |
| signCert | byte | 공개키 |
| data | byte | 원문 |
| Name | Type | Description |
|---|---|---|
| signedData | String | 전자서명 데이터 |
byte[] key = FileUtil.readBytesFromFileName(kmKeyPath);
String kmCert = CertUtil.derToPem(FileUtil.readBytesFromFileName(kmCertPath));
PKCS7Util pkcs7 = new PKCS7Util();
try {
String orgData = "TEST123";
String signedData = pkcs7.genSignedData(key, "signgate1!", kmCert.getBytes(), orgData.getBytes());
result.put("SignedData", signedData);
} catch (Exception e) {
result.put("error", pkcs7.getErrorMsg());
}
| Name | Type | Description |
|---|---|---|
| p7sBytes | byte | 개인키 |
| signPriKey | byte | 개인키 |
| passwd | String | 패스워드 |
| signCert | byte | 공개키 |
| Name | Type | Description |
|---|---|---|
| res | String | addSignedData |
byte[] key = FileUtil.readBytesFromFileName(kmKeyPath);
String kmCert = CertUtil.derToPem(FileUtil.readBytesFromFileName(kmCertPath));
PKCS7Util pkcs7 = new PKCS7Util();
try {
String p7Data = "-----BEGIN PKCS7-----\n"+
"MIIH5AYJKoZIhvcNAQcCoIIH1TCCB9ECAQExDzANBglghkgBZQMEAgEFADATBgkq\n"+
"hkiG9w0BBwGgBgQEdGVzdKCCBbgwggW0MIIEnKADAgECAgQGSjXNMA0GCSqGSIb3\n"+
"DQEBCwUAMEoxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARLSUNBMRUwEwYDVQQLDAxB\n"+
"Y2NyZWRpdGVkQ0ExFTATBgNVBAMMDHNpZ25HQVRFIENBNTAeFw0yMjA2MjAwMjEz\n"+
"NTJaFw0yMzA3MTExNDU5NTlaMIGTMQswCQYDVQQGEwJLUjENMAsGA1UECgwES0lD\n"+
"QTETMBEGA1UECwwKbGljZW5zZWRDQTEVMBMGA1UECwwM65Ox66Gd6riw6rSAMRkw\n"+
"FwYDVQQLDBBLSUNB6rOg6rCd7IS87YSwMREwDwYDVQQLDAjshLzthLBSQTEbMBkG\n"+
"A1UEAwwS7ZWc7KCV7J24KOqwnOyduGEpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\n"+
"MIIBCgKCAQEAtle3+PDbi0jM93McGBjtocAj0/EDvsTgvN3NmRs+Son0ZUgWuhOx\n"+
"PR3g+72zEcK3Z1VjBct5Y/fv1ArFeXDMHzJy2DSDS9cxbsqEX04Kl80OhvIakzQD\n"+
"DyLKR/HXo020cIBoUkyD/SW/tA0A6QNs4rW4gS9a7qImVcCFHjXV0YOnr3lHuc2x\n"+
"579kq6pKAvqF+CInsxRS0oy3cJdMzgIAkmmh6SnwlYvzbnsjCK8KJXBQ8JieTJgz\n"+
"dYR6WiBvz379K5RZDCddZf8dkZpnFBFQWqm/CYmE3ZReUYQc9BGc/WfthsjuXiVA\n"+
"CsyoEcV5GHtFAo16dL0i9Ucejd/Hs2q77wIDAQABo4ICVjCCAlIwgY8GA1UdIwSB\n"+
"hzCBhIAU2L467EWZxZ7jnOqBH9IdErA2PoihaKRmMGQxCzAJBgNVBAYTAktSMQ0w\n"+
"CwYDVQQKDARLSVNBMS4wLAYDVQQLDCVLb3JlYSBDZXJ0aWZpY2F0aW9uIEF1dGhv\n"+
"cml0eSBDZW50cmFsMRYwFAYDVQQDDA1LSVNBIFJvb3RDQSA0ggIQHTAdBgNVHQ4E\n"+
"FgQUmJjN5bWKItlQMUmdSSgw1MCrclIwDgYDVR0PAQH/BAQDAgbAMHUGA1UdIARu\n"+
"MGwwagYKKoMajJpEBQIBAjBcMCwGCCsGAQUFBwIBFiBodHRwOi8vd3d3LnNpZ25n\n"+
"YXRlLmNvbS9jcHMuaHRtbDAsBggrBgEFBQcCAjAgHh7HdAAgx3jJncEcspQAIKz1\n"+
"s9nHeMmdwRzHhbLIsuQwcQYDVR0RBGowaKBmBgkqgxqMmkQKAQGgWTBXDBLtlZzs\n"+
"oJXsnbgo6rCc7J24YSkwQTA/BgoqgxqMmkQKAQEBMDEwCwYJYIZIAWUDBAIBoCIE\n"+
"IKA99Jt+UBuHqtR7MvEDvZj/t1mw8AOY70Q2JXXMuedHMF8GA1UdHwRYMFYwVKBS\n"+
"oFCGTmxkYXA6Ly9sZGFwLnNpZ25nYXRlLmNvbTozODkvb3U9ZHA3cDM4NTI3LG91\n"+
"PWNybGRwLG91PUFjY3JlZGl0ZWRDQSxvPUtJQ0EsYz1LUjBEBggrBgEFBQcBAQQ4\n"+
"MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLnNpZ25nYXRlLmNvbTo5MDIwL09D\n"+
"U1BTZXJ2ZXIwDQYJKoZIhvcNAQELBQADggEBAGpCr9fvOAcHn8MbmK+eJ95xb4po\n"+
"ov6pC3XT2QLyjIn0m1RoinpCCxWK/WKIhzRRMh5FS+MwCTM7iLaPBNxe3ZGeSQL+\n"+
"LQAR2swCfkrm+tW9tryx5Awe8Jm7vqzoJ8mTiqhArFF/oiKi0741SxE3m5wIv6bg\n"+
"PA7qexY1PhH43+h5oOXxrbQwjGsYOfT41dYZMrATOfo8FUp8qCZ6eSo1kl1mN1go\n"+
"32T+yoitjUpv1nL0b/XLxU14W9krxwf3oCVmNKDNXzTWgAPTJPZidMIZ6rsxbuyu\n"+
"wWEA4w508GMERHa7QbBoWmK46E7cm+2kdDydm1YtWkSWAyjyTSX2PnpggiwxggHo\n"+
"MIIB5AIBATBSMEoxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARLSUNBMRUwEwYDVQQL\n"+
"DAxBY2NyZWRpdGVkQ0ExFTATBgNVBAMMDHNpZ25HQVRFIENBNQIEBko1zTANBglg\n"+
"hkgBZQMEAgEFAKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN\n"+
"AQkFMQ8XDTIyMTIxNTA1MzYyM1owLwYJKoZIhvcNAQkEMSIEIJ+G0IGITH1lmi/q\n"+
"oMVa0BWjv08bKwuCLNFdbBWw8AoIMA0GCSqGSIb3DQEBCwUABIIBAIpyFfXGdFXh\n"+
"mrpBJMuaVA9mlgQ9C6j/YnZygZSEH4two3NaPJTJzbHQeczRtmI9R3FxGLXEqMmO\n"+
"FFHYVxVCD16ZpbaWypa5uWP2Je5EhdPtOdaBcCSDi7o54D8I0lYNyfnP8W8vQSlH\n"+
"n0eGjVpmTIVfFFsfA+UZgbMiGjvrQGZuBBh7aWVzAV3uD8+ZLGZPJo4xtRtLAP6p\n"+
"qfkzwlxnI9VhTwwaEoV84l9Vl3X122IaguB/iA0d2T3srLQU/rKKNbBLZJlGvK9A\n"+
"Kx3DM9aYdsGGK3pWi0wRITRY0xHEqk++Gf00b49Lf6pks7yibVZWB5qQr9sNyshg\n"+
"Fuvj4thAdrM=\n"+
"-----END PKCS7-----\n";
String addSignedData = pkcs7.addSign(p7Data, key, "signgate1!", kmCert.getBytes());
result.put("addSignedData", addSignedData);
} catch (Exception e) {
result.put("error", pkcs7.getErrorMsg());
}
| Name | Type | Description |
|---|---|---|
| p7Data | String | PKCS7 Message |
| Name | Type | Description |
|---|---|---|
| res | boolean | verify |
PKCS7Util pkcs7 = new PKCS7Util();
try {
String p7Data = "-----BEGIN PKCS7-----\n"+
"MIIH5AYJKoZIhvcNAQcCoIIH1TCCB9ECAQExDzANBglghkgBZQMEAgEFADATBgkq\n"+
"hkiG9w0BBwGgBgQEdGVzdKCCBbgwggW0MIIEnKADAgECAgQGSjXNMA0GCSqGSIb3\n"+
"DQEBCwUAMEoxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARLSUNBMRUwEwYDVQQLDAxB\n"+
"Y2NyZWRpdGVkQ0ExFTATBgNVBAMMDHNpZ25HQVRFIENBNTAeFw0yMjA2MjAwMjEz\n"+
"NTJaFw0yMzA3MTExNDU5NTlaMIGTMQswCQYDVQQGEwJLUjENMAsGA1UECgwES0lD\n"+
"QTETMBEGA1UECwwKbGljZW5zZWRDQTEVMBMGA1UECwwM65Ox66Gd6riw6rSAMRkw\n"+
"FwYDVQQLDBBLSUNB6rOg6rCd7IS87YSwMREwDwYDVQQLDAjshLzthLBSQTEbMBkG\n"+
"A1UEAwwS7ZWc7KCV7J24KOqwnOyduGEpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\n"+
"MIIBCgKCAQEAtle3+PDbi0jM93McGBjtocAj0/EDvsTgvN3NmRs+Son0ZUgWuhOx\n"+
"PR3g+72zEcK3Z1VjBct5Y/fv1ArFeXDMHzJy2DSDS9cxbsqEX04Kl80OhvIakzQD\n"+
"DyLKR/HXo020cIBoUkyD/SW/tA0A6QNs4rW4gS9a7qImVcCFHjXV0YOnr3lHuc2x\n"+
"579kq6pKAvqF+CInsxRS0oy3cJdMzgIAkmmh6SnwlYvzbnsjCK8KJXBQ8JieTJgz\n"+
"dYR6WiBvz379K5RZDCddZf8dkZpnFBFQWqm/CYmE3ZReUYQc9BGc/WfthsjuXiVA\n"+
"CsyoEcV5GHtFAo16dL0i9Ucejd/Hs2q77wIDAQABo4ICVjCCAlIwgY8GA1UdIwSB\n"+
"hzCBhIAU2L467EWZxZ7jnOqBH9IdErA2PoihaKRmMGQxCzAJBgNVBAYTAktSMQ0w\n"+
"CwYDVQQKDARLSVNBMS4wLAYDVQQLDCVLb3JlYSBDZXJ0aWZpY2F0aW9uIEF1dGhv\n"+
"cml0eSBDZW50cmFsMRYwFAYDVQQDDA1LSVNBIFJvb3RDQSA0ggIQHTAdBgNVHQ4E\n"+
"FgQUmJjN5bWKItlQMUmdSSgw1MCrclIwDgYDVR0PAQH/BAQDAgbAMHUGA1UdIARu\n"+
"MGwwagYKKoMajJpEBQIBAjBcMCwGCCsGAQUFBwIBFiBodHRwOi8vd3d3LnNpZ25n\n"+
"YXRlLmNvbS9jcHMuaHRtbDAsBggrBgEFBQcCAjAgHh7HdAAgx3jJncEcspQAIKz1\n"+
"s9nHeMmdwRzHhbLIsuQwcQYDVR0RBGowaKBmBgkqgxqMmkQKAQGgWTBXDBLtlZzs\n"+
"oJXsnbgo6rCc7J24YSkwQTA/BgoqgxqMmkQKAQEBMDEwCwYJYIZIAWUDBAIBoCIE\n"+
"IKA99Jt+UBuHqtR7MvEDvZj/t1mw8AOY70Q2JXXMuedHMF8GA1UdHwRYMFYwVKBS\n"+
"oFCGTmxkYXA6Ly9sZGFwLnNpZ25nYXRlLmNvbTozODkvb3U9ZHA3cDM4NTI3LG91\n"+
"PWNybGRwLG91PUFjY3JlZGl0ZWRDQSxvPUtJQ0EsYz1LUjBEBggrBgEFBQcBAQQ4\n"+
"MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLnNpZ25nYXRlLmNvbTo5MDIwL09D\n"+
"U1BTZXJ2ZXIwDQYJKoZIhvcNAQELBQADggEBAGpCr9fvOAcHn8MbmK+eJ95xb4po\n"+
"ov6pC3XT2QLyjIn0m1RoinpCCxWK/WKIhzRRMh5FS+MwCTM7iLaPBNxe3ZGeSQL+\n"+
"LQAR2swCfkrm+tW9tryx5Awe8Jm7vqzoJ8mTiqhArFF/oiKi0741SxE3m5wIv6bg\n"+
"PA7qexY1PhH43+h5oOXxrbQwjGsYOfT41dYZMrATOfo8FUp8qCZ6eSo1kl1mN1go\n"+
"32T+yoitjUpv1nL0b/XLxU14W9krxwf3oCVmNKDNXzTWgAPTJPZidMIZ6rsxbuyu\n"+
"wWEA4w508GMERHa7QbBoWmK46E7cm+2kdDydm1YtWkSWAyjyTSX2PnpggiwxggHo\n"+
"MIIB5AIBATBSMEoxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARLSUNBMRUwEwYDVQQL\n"+
"DAxBY2NyZWRpdGVkQ0ExFTATBgNVBAMMDHNpZ25HQVRFIENBNQIEBko1zTANBglg\n"+
"hkgBZQMEAgEFAKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN\n"+
"AQkFMQ8XDTIyMTIxNTA1MzYyM1owLwYJKoZIhvcNAQkEMSIEIJ+G0IGITH1lmi/q\n"+
"oMVa0BWjv08bKwuCLNFdbBWw8AoIMA0GCSqGSIb3DQEBCwUABIIBAIpyFfXGdFXh\n"+
"mrpBJMuaVA9mlgQ9C6j/YnZygZSEH4two3NaPJTJzbHQeczRtmI9R3FxGLXEqMmO\n"+
"FFHYVxVCD16ZpbaWypa5uWP2Je5EhdPtOdaBcCSDi7o54D8I0lYNyfnP8W8vQSlH\n"+
"n0eGjVpmTIVfFFsfA+UZgbMiGjvrQGZuBBh7aWVzAV3uD8+ZLGZPJo4xtRtLAP6p\n"+
"qfkzwlxnI9VhTwwaEoV84l9Vl3X122IaguB/iA0d2T3srLQU/rKKNbBLZJlGvK9A\n"+
"Kx3DM9aYdsGGK3pWi0wRITRY0xHEqk++Gf00b49Lf6pks7yibVZWB5qQr9sNyshg\n"+
"Fuvj4thAdrM=\n"+
"-----END PKCS7-----\n";
boolean verifyResult = pkcs7.verify(p7Data);
result.put("p7VerifyResult", verifyResult);
} catch (Exception e) {
result.put("error", pkcs7.getErrorMsg());
}