SG Secukit

isValid

Request
isValid Request
Name Type Description
signCert byte[] 인증서 경로 지정
fileSavePath String 인증서 폐기 목록 경로
Response
isValid Response
Name Type Description
certValidation boolean 인증서 유효성 여부
Request

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());
}
                        
Response

getSubjectDN

Request
SubjectDN Request
Name Type Description
signCert byte[] 인증서 경로 지정
Response
SubjectDN Response
Name Type Description
subjectDn String 인증서 DN
Request

try {
    CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
    String strSubjectDn = cert.getSubjectDN();
    result.put("subjectDn", strSubjectDn);
} catch (Exception e) {
    result.put("subjectDn", e.getMessage());
}
                        
Response

issuerDN

Request
issuerDN Request
Name Type Description
signCert byte[] 인증서 경로 지정
Response
issuerDN Response
Name Type Description
issuerDn String 발급기관 DN
Request

try {
    CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
    String strIssuerDn = cert.getIssuerDN();
    result.put("issuerDn", strIssuerDn);
} catch (Exception e) {
    result.put("issuerDn", e.getMessage());
}
                        
Response

getSerialNumber

Request
getSerialNumber Request
Name Type Description
signCert byte[] 인증서 경로 지정
Response
getSerialNumber Response
Name Type Description
serialNumber String 일련번호
Request

try {
    CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
    String strSerialNumber = cert.getSerialNumber();
    result.put("serialNumber", strSerialNumber);
} catch (Exception e) {
    result.put("serialNumber", e.getMessage());
}
                        
Response

getPolicyOid

Request
getPolicyOid Request
Name Type Description
signCert byte[] 인증서 경로 지정
Response
getPolicyOid Response
Name Type Description
policyOid String 인증서 정책 OID
Request

try {
    CertUtil cert = new CertUtil(FileUtil.readBytesFromFileName(kmCertPath));
    String strPolicyOid = cert.getPolicyOid();
    result.put("policyOid", strPolicyOid);
} catch (Exception e) {
    result.put("policyOid", e.getMessage());
}
                        
Response

signInit

Request
signInit Request
Name Type Description
signKeyBytes byte 개인키 바이트 값
passwd String 개인키 패스워드
Response
signInit Response
Name Type Description
signedData String 전자서명 데이터
Request

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());
}
                        
Response

verifyInit

Request
verifyInit Request
Name Type Description
certBytes byte 인증서 바이트 값
Response
verifyInit Response
필드 타입 설명
응답 없음
Request

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());
}
                        
Response

encryptInit

Request
encryptInit Request
Name Type Description
certBytes byte 인증서 바이트 값
Response
encryptInit Response
Name Type Description
encData String 인증서를 이용해 암호화한 데이터
Request

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());
}
                        
Response

decryptInit

Request
decryptInit Request
Name Type Description
encKeyBytes byte 복호화에 필요한 암호화용 개인키
passwd String 개인키 패스워드
Response
decryptInit Response
Name Type Description
encData String 인증서를 이용해 복호화한 데이터
Request

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());
}
                        
Response

genSignedData

Request
genSignedData Request
Name Type Description
signPriKey byte 개인키
passwd String 패스워드
signCert byte 공개키
data byte 원문
Response
genSignedData Response
Name Type Description
signedData String 전자서명 데이터
Request

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());
}
                        
Response

addSign

Request
addSign Request
Name Type Description
p7sBytes byte 개인키
signPriKey byte 개인키
passwd String 패스워드
signCert byte 공개키
Response
addSign Response
Name Type Description
res String addSignedData
Request

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());
}
                        
Response

verify

Request
verify Request
Name Type Description
p7Data String PKCS7 Message
Response
verify Response
Name Type Description
res boolean verify
Request

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());
}
                        
Response