//** 환경 설정시 주의사항 *************************************************************** // // // . 인증기관 LDAP 정보 모음 은 LDAP 에서 인증서를 가져올 때 반드시 사용된다. // //**************************************************************************************// //** 기본정보 설정 ************************************************************// // == 인증기관 관련 정보 모음 ================================= // var CA_LDAP_INFO = "KISA:dirsys.rootca.or.kr:389|KICA:ldap.signgate.com:389|SignKorea:dir.signkorea.com:389|Yessign:ds.yessign.or.kr:389|CrossCert:dir.crosscert.com:389|TradeSign:ldap.tradesign.net:389|NCASign:ds.nca.or.kr:389|"; // == 인증서 정책 관련 ===================================== // // -- 법인 상호연동용 OID 모음 var FIRST_COMP_CERT_POLICIES = "1 2 410 200012 1 1 3:범용기업|1 2 410 200004 5 1 1 7:범용기업|1 2 410 200005 1 1 5:범용기업|1 2 410 200004 5 2 1 1:범용기업|1 2 410 200004 5 4 1 2:범용기업|1 2 410 200004 5 3 1 1:범용기관|1 2 410 200004 5 3 1 2:범용기업|1 2 410 200012 5 6 1 191:태경농산 전자계약시스템전용|"; // -- 개인 상호연동용 OID 모음 var FIRST_INDI_CERT_POLICIES = "1 2 410 200012 1 1 1:범용개인|1 2 410 200004 5 1 1 5:범용개인|1 2 410 200005 1 1 1:범용개인|1 2 410 200004 5 2 1 2:범용개인|1 2 410 200004 5 4 1 1:범용개인|1 2 410 200004 5 3 1 9:범용개인|"; // -- 모든 인증서 허용 var ALL_CERT_POLICIES = ""; // ============================================================== // // == 인증서 저장매체 관련 ===================================== // var HARD_DISK = 0; var REMOVABLE_DISK = 1; var IC_CARD = 2; var PKCS11 = 3; // ============================================================== // // == 인증서 Type 관련 ===================================== // var CERT_TYPE_SIGN = 1; var CERT_TYPE_KM = 2; var DATA_TYPE_PEM = 0; var DATA_TYPE_BASE64 = 1; var DATA_TYPE_FILE = 1; // ============================================================== // // == HASH 알고리즘 ========================================= // var HASH_ID_MD5 = 1; var HASH_ID_RIPEMD160 = 2; var HASH_ID_SHA1 = 3; // 기본적으로 사용함. var HASH_ID_HAS160 = 4; // ============================================================== // // == 대칭키 알고리즘 & 모드 ===================================== // var SYMMETRIC_ID_DES = 1; var SYMMETRIC_ID_3DES = 2; // 기본적으로 사용함. var SYMMETRIC_ID_SEED = 3; var SYMMETRIC_MODE_ECB = 1; var SYMMETRIC_MODE_CBC = 2; // 기본적으로 사용함. var SYMMETRIC_MODE_CFB = 3; var SYMMETRIC_MODE_OFB = 4; // ============================================================== // // == 인증서 정보 관련 설정값 ================================= // var CERT_ATTR_VERSION = 1; var CERT_ATTR_SERIAL_NUBMER = 2; var CERT_ATTR_SIGNATURE_ALGO_ID = 3; var CERT_ATTR_ISSUER_DN = 4; var CERT_ATTR_SUBJECT_DN = 5; var CERT_ATTR_SUBJECT_PUBLICKEY_ALGO_ID = 6; var CERT_ATTR_VALID_FROM = 7; var CERT_ATTR_VALID_TO = 8; var CERT_ATTR_PUBLIC_KEY = 9; var CERT_ATTR_SIGNATURE = 10; var CERT_ATTR_KEY_USAGE = 11; var CERT_ATTR_AUTORITY_KEY_ID = 12; var CERT_ATTR_SUBJECT_KEY_ID = 13; var CERT_ATTR_EXT_KEY_USAGE = 14; var CERT_ATTR_SUBJECT_ALT_NAME = 15; var CERT_ATTR_BASIC_CONSTRAINT = 16; var CERT_ATTR_POLICY = 17; var CERT_ATTR_CRLDP = 18; var CERT_ATTR_AIA = 19; var CERT_ATTR_VALID = 20; // ============================================================== // // == 인증서 Type 관련 ===================================== // var DATA_TYPE_CACERT = 1; var DATA_TYPE_SIGN_CERT = 2; var DATA_TYPE_KM_CERT = 3; var DATA_TYPE_CRL = 4; var DATA_TYPE_ARL = 5; // ============================================================== // //**************************************************************************************// //** 환경 설정 ************************************************************// // 인증서 선택시 기본 매체. var STORAGE_TYPE = HARD_DISK; // 보고자하는 인증서 정책 모음. //var POLICIES =ALL_CERT_POLICIES; var POLICIES=FIRST_COMP_CERT_POLICIES; // 서명시 필요한 Config 조절. // 서명 생성시 인증서 포함 여부, 0 : 서명자 인증서만 포함.(기본), 1 : 서명자 & CA 인증서 포함. var INC_CERT_SIGN = 0; // 서명 생성시 CRL 인증서 포함 여부, 0 : 미포함 (기본), 1 : 포함, var INC_CRL_SIGN = 0; // 서명 생성시 서명시간 포함 여부, 0 : 미포함, 1 : 포함(기본) var INC_SIGN_TIME_SIGN = 1; // 서명 생성시 원본데이타 포함 여부 , 0 : 미포함, 1 : 포함(기본) var INC_CONTENT_SIGN = 1; // 인증서 검증에 필요한 Config 조절 // 사용자 인증서 검증 조건, 0 : CRL 체크 안함. 1 : 현재시간기준으로 유효한 CRL 사용(기본), 2 : 현재 시간기준으로 유효한 CRL 못 구할 시 이전 CRL 사용. var USING_CRL_CHECK = 1; // CA 인증서 검증 조건, 0 : ARL 체크 안함. 1 : 현재시간기준으로 유효한 ARL 사용(기본), 2 : 현재 시간기준으로 유효한 CRL 못 구할 시 이전 ARL 사용. var USING_ARL_CHECK = 0; var CTL_INFO = ""; // Envelop 테스트시 사용하는 상대방 인증서 var pemSignCert, pemSignKey, pemKMCert, pemKMKey; //pemSignCert = "-----BEGIN CERTIFICATE-----MIIFDTCCA/WgAwIBAgIEWWxSXjANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJLUjESMBAGA1UECgwJVHJhZGVTaWduMRUwEwYDVQQLDAxBY2NyZWRpdGVkQ0ExFDASBgNVBAMMC1RyYWRlU2lnbkNBMB4XDTA4MDcxMTAwMTAwN1oXDTA5MDcxMDAyMzkyOVowcTELMAkGA1UEBhMCS1IxEjAQBgNVBAoMCVRyYWRlU2lnbjEVMBMGA1UECwwMQWNjcmVkaXRlZENBMQ0wCwYDVQQLDARLRUNTMSgwJgYDVQQDDB8o7KO8Ke2YhOuMgO2ZiOyHvO2VkV8wMDAwMTIzOTg0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDd8ToIXpc8bvx7FtsaGWzFPxFG2cco7BTeoKqwFHdHqHMuEPqnXO3+cRKNLLm38JRXYl4CXxhncz++yVtrZ0D9ux999KdJoPlxvCYDM6b17Q/uc7HzRIvDt/3v7YMhVcsOJ7shkY7VcZ8MolZIpZNfDhW2nPxTeIIuxu7RjsVkbwIDAQABo4ICUjCCAk4wgY8GA1UdIwSBhzCBhIAUK3YCroJcfe6BkZ71iVu54plbqa+haKRmMGQxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARLSVNBMS4wLAYDVQQLDCVLb3JlYSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDZW50cmFsMRYwFAYDVQQDDA1LSVNBIFJvb3RDQSAxggInZDAdBgNVHQ4EFgQUmpV+bweDgCxsTzpp/EVwZize6EgwDgYDVR0PAQH/BAQDAgbAMHoGA1UdIAEB/wRwMG4wbAYJKoMajJpMAQEFMF8wLgYIKwYBBQUHAgIwIh4gx3QAIMd4yZ3BHLKUACCs9cd4x3jJncEcACDHhbLIsuQwLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cudHJhZGVzaWduLm5ldC9jcHMuaHRtbDBjBgNVHREEXDBaoFgGCSqDGoyaRAoBAaBLMEkMFCjso7wp7ZiE64yA7ZmI7Ie87ZWRMDEwLwYKKoMajJpECgEBATAhMAcGBSsOAwIaoBYEFKfRbUlkqJy4avPv6MNWelUcelflMGUGA1UdHwReMFwwWqBYoFaGVGxkYXA6Ly9sZGFwLnRyYWRlc2lnbi5uZXQ6Mzg5L2NuPWNybDFkcDEzNixvdT1jcmxkcCxvdT1BY2NyZWRpdGVkQ0Esbz1UcmFkZVNpZ24sYz1LUjBDBggrBgEFBQcBAQQ3MDUwMwYIKwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnRyYWRlc2lnbi5uZXQ6ODAvT0NTUFNlcnZlcjANBgkqhkiG9w0BAQUFAAOCAQEAFBNk9sKzaWoH4LPK4t2lqMTUXlNhRofN5d2c61tlxn+crJ57njXWcLmXbLXizxa2eW8/avVPcFgwzGoEKR699OOI6Yv81f73qzm1dOfuptzI17EH4/bOzG3czDybB7j8cr4eFz8r6+Yaqv7H/HR/ZzSlyaNFXpwvbw/BZCq4Hzx7sRPD6X389Kc6IY5pk34bx8QMHPvOW8Y791lQ5v4cwSB7pv4XM9FZdgmvo9AvlqvWHOiSLbJYP7C/z6fKZ0Npy81leUKA0VrfUT70ebFqKjsNBOzj2bn26NfXwtOzQrUnQA0znRq9Hc4CqnvWK9h6NSib59ThzbfjYhnuvID4Hw==-----END CERTIFICATE-----"; //pemSignKey = "-----BEGIN ENCRYPTED PRIVATE KEY-----MIIC/jBIBgkqhkiG9w0BBQ0wOzAbBgkqhkiG9w0BBQwwDgQIYFqvEBmeXZMCAgQAMBwGCCqDGoyaRAEEBBARlJnlQ0dSAc4OpPw0D62RBIICsLMVv3dsHyyJRpb1QLgLVygs3QAs8Ydw7r+N/RyQIMYU9Mt9nfhxcyT+BOInCPUDhnWcgHDOAviGenAUy2iJCdRDBfhBgk431Yw6OE05vEoD0AtuP8sm08f44ECJQRkl2hMjZUW2610gbDesUzBmsuc+97rJ9anDA2zjkzrLNfs7h6JDeaSwVuOQx4hush1NBJCke5FuH3XYTFm6nl1RaWAtpFWuGMYUQsZRk/Lym/6vcQd3aAPET6vcctjmiUr4vpPQmwAl7Q2xQpV1ymIprapwBCX/eIUT+liARsekIc83CxBlJYrlTalxWp0Q6Wya+lcBm2sMfXo9vktVk4XD2ScHLw7H4pJlCX75cU+MDf/2v5Yy32ZmhJjUZqsRno58d+zC3LkvkOTuqqL8QF7VnYsp3m58MiTXiU+Cg64IxRCfWRUosxJ1Fh3q+M/A+P8Eus33jbDDf4xW5/zFfVhpF8pvbQ6xR5gv49te3hliDJioZzaBfOjM0F7s2eDPWm6EHD2SlwRIyYvKR69rvNp5EuHcwPsP77Nt0Bmb/fANwDNiHsw2Jrq/RtWuv6mqA2yVOiPv2vgDATxll1vLCsODue0MCItNFDTkyE5POy+mDGs1RVxYUULs+gu/hV6bUk67l3c6gpbrP2Q6tQqo1GiYc7/tJdelNEmnedLE8Cdlrm8/mblcgaRVL7pZusoM1m/GzznS60niwyEU+zFIFrrc/6+tf91P6NryZDHgs0o0OCN7ZSByDx3MwiwfokTxV/rNndYXPLt3U6f1bp9OOiMoXUGR9hlFIPS8h38rdH+FiarH5PhJEKmodpBrMwaV3VS2DQmSLKNQ8o3ms2ui3XLSrhmdZwS0uL0zT7lLVO88MzQ0tc/LSPv7QSTCV61tx+cCQ2blCpOOKPMBOdO2AgXIpZ8=-----END ENCRYPTED PRIVATE KEY-----"; //pemKMCert = "-----BEGIN CERTIFICATE-----MIIEqDCCA5CgAwIBAgIEWWxSXzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJLUjESMBAGA1UECgwJVHJhZGVTaWduMRUwEwYDVQQLDAxBY2NyZWRpdGVkQ0ExFDASBgNVBAMMC1RyYWRlU2lnbkNBMB4XDTA4MDcxMTAwMTAwN1oXDTA5MDcxMDAyMzkyOVowcTELMAkGA1UEBhMCS1IxEjAQBgNVBAoMCVRyYWRlU2lnbjEVMBMGA1UECwwMQWNjcmVkaXRlZENBMQ0wCwYDVQQLDARLRUNTMSgwJgYDVQQDDB8o7KO8Ke2YhOuMgO2ZiOyHvO2VkV8wMDAwMTIzOTg0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDmSSB7Ag1TNjiYbpq8iOuxJ7t8pQkVCYy49ZLGkUml0jlmsaTWjLIfw8pP702KP4NQ3e4yTBUM3C4NshSgpUoe5H7e3X0xa7npu3cKbcYV4ciFb3Z4hzvUzUVTOOW8hZkXtr2toTA+OqQhE3MDUp1B1lo55LOimkwo9m8OahqVKwIDAQABo4IB7TCCAekwgY8GA1UdIwSBhzCBhIAUK3YCroJcfe6BkZ71iVu54plbqa+haKRmMGQxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARLSVNBMS4wLAYDVQQLDCVLb3JlYSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDZW50cmFsMRYwFAYDVQQDDA1LSVNBIFJvb3RDQSAxggInZDAdBgNVHQ4EFgQU04O1FvYXL4tx3dw1lSHQQDp8vKQwDgYDVR0PAQH/BAQDAgUgMHoGA1UdIAEB/wRwMG4wbAYJKoMajJpMAQEGMF8wLgYIKwYBBQUHAgIwIh4gx3QAIMd4yZ3BHLKUACCs9cd4x3jJncEcACDHhbLIsuQwLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cudHJhZGVzaWduLm5ldC9jcHMuaHRtbDBlBgNVHR8EXjBcMFqgWKBWhlRsZGFwOi8vbGRhcC50cmFkZXNpZ24ubmV0OjM4OS9jbj1jcmwxZHAxMzYsb3U9Y3JsZHAsb3U9QWNjcmVkaXRlZENBLG89VHJhZGVTaWduLGM9S1IwQwYIKwYBBQUHAQEENzA1MDMGCCsGAQUFBzABhidodHRwOi8vb2NzcC50cmFkZXNpZ24ubmV0OjgwL09DU1BTZXJ2ZXIwDQYJKoZIhvcNAQEFBQADggEBAIfv4aFo3qviYczo6tOS9IMEsMwE/b0v995YEvgNE3i3wLIGJQ6ml3gpyZlSQn9MxGuNPdirqbJgcpz6wGfx+Rv6VO+CNbAH0alUV02R4zY+OJroUc79ihX6lrKDh5W3nOvGVaz5oH1nGuAk1rNN87XNELh1cLGeCk8YXtec8jbBpvnJ4DPb1795bCTrRKSwQ02+7xschrFC76xpZ7u4v6n8TsCZzKX0cmF8ALJTpOl1mZUDq6qrOt6kvVJ+iOotC/q4J4r9HeEvVM3gff1TwrpDIXzWnBDq8pDj7m8wPqaRef1mRGHs4eLV0rFZ8URZTGgJjrwUcXKNGM52THZkzek=-----END CERTIFICATE-----"; //pemKMKey = "-----BEGIN ENCRYPTED PRIVATE KEY-----MIICzjBIBgkqhkiG9w0BBQ0wOzAbBgkqhkiG9w0BBQwwDgQI0Upbji804UkCAgQAMBwGCCqDGoyaRAEEBBDa9aK7R/jNLZtVeeEIOPo2BIICgAjTSbS4v8WmFZpyXYhGl0glSwGRGtRtgXoUFB68/ofkoGL605364BHgZJ9LVcvpknpKYsfoVzejxMgBji6YxLxvsnhlM0badlvUUTndCLr9B6KJM0ephFc/zwIfQO1LfgdxSfVSTl3p4ry7UcjNyRjAJ9+Wr7CCq9/IoY3RRvN2AkYkaCTqdi5c3kVJJPBFr6GDMMv446DhIkvjtjgQJk5ngHNVOJr1qn43tC8z7CNSyxbRgGwi6JIOHq8I7f90rC401cDHCSOTWhXw1DRqg+EL7R9jOJqNruPbKPolFY3eZSXzhAc0GH76nGInwzq1LxGP5on3wFy2MU87k+MsQyobh6T56v1gMR2xUmz6QdX5Bh2xRhQJ8h3/9hHG4neDkJ4FAWrf2BBwI8MHjp5MR5mijnA4An+CCYlilRbu5McWUxK9HWTS+LJ/r+IObBFd/BqA5hqtojhI6hAwLUCVfnIqw7+N//Zwr8t/8z3GO8+F4mV3gRxTrVbNh0KqfGanp5cz9B2O85dHVsWudljXuYVVq+IMv9ds05PdlwDDvM6CvnDqFLa79TNzjrRy+KegCbAqigAIzK3v0BZmla9gWuvI9L4481bBYUyyMawaf7X7dZEl/3fjmPZ7QpnJ2+908MJL+V7kKhl937Fl6IahLHa2vySsnSDjDQijL8YAE+YcyHaCatjMr82WZZgeryRJPP/rcTSlhYZ9s5Xs/+obo//QloqX2ag1CbUyktnEdJW7kB1Xx8YeVXsb0QQ9S6rOr9a/z9YgsAwXtaVd+1E1lw7MkcVfmR41BT1g8w7zM2kzsA4UlGkk0CSH0h1DBfiwvQVgrj1qwd0o2pWO05H+L44=-----END ENCRYPTED PRIVATE KEY-----"; //**************************************************************************************// function escape_url(url) { var i; var ch; var out = ''; var url_string = ''; url_string = String(url); for (i = 0; i < url_string.length; i++) { ch = url_string.charAt(i); if (ch == ' ') out += '%20'; else if (ch == '%') out += '%25'; else if (ch == '&') out += '%26'; else if (ch == '+') out += '%2B'; else if (ch == '=') out += '%3D'; else if (ch == '?') out += '%3F'; else out += ch; } return out; }