﻿///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// BGPT Center BGPTWCtl Common Script
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// BGPT Client Toolkit Install & Check Function
function SetupObjBGWC(objCheckmode, mode)
{
	// BGPTWCtl Object 설정
	document.writeln("<OBJECT");
	document.writeln("classid='clsid:835DC397-5F61-4C31-B0AC-384ECE3BE087'");
	document.writeln("CODEBASE='../cq_scripts/install/BGPTWCtl.cab#version=1,0,5,1'");
	document.writeln("id='ObjBGWC'>");
	document.writeln("</OBJECT>");
	
	if(objCheckmode == true)
	{
		// 컨트롤이 설치 되지 않은 경우 설치 페이지로 이동
		if(CheckObjBGWC() == false)
		{
			location.href="../cq_scripts/InstallProc.html";
		}
	}
}

function CheckObjBGWC()
{
	// 컨트롤의 정상 설치 유무 확인
	if(ObjBGWC == null || ObjBGWC.object == null)
		return false;
	else
		return true;
}

// BGPT Client Toolkit Property Setting Function
function InitObjBGWC()
{
	/* 본 속성 설정 관련 함수는 필요에 따라 주석을 풀거나, 설정하여 적절히 조합한 후 사용하거나, 필요 속성별로 별도의 javascript 함수로 변경하여 사용하는 것을 권장함 */
	
	/* 인증서 선택창 필터링 관련 속성 설정 */
	// 인증서의 DN을 통해 선택 가능 인증서를 제한하고자 하는 경우 사용하며, 입력값이 복수인 경우 '$'를 구분자로 처리함.
	//ObjBGWC.SetProperty("Filter_IDN", "O=Government of Korea,C=KR"); // 예) BGPT, GPKI 발급 인증서만 선택 가능
	
	// 인증서의 IssueDN과 Serial을 통해 선택 가능 인증서를 제한하고자 하는 경우 사용하며, 입력값이 복수인 경우 '$'를 구분자로 처리함.
	//ObjBGWC.SetProperty("Filter_IDNAndSN", "CN=CA134040001,OU=GPKI,O=Government of Korea,C=KR|9896d7"); // 예) 발급자가 BGPT이며, 인증서의 Serial이 009896d7인 인증서만 선택 가능 하도록 처리함. IDN과 SN의 구분자는 '|'
	
	// 인증서의 발급 기관을 통하여 선택 가능 인증서를 제한하고자 하는 경우 사용하며, 입력값이 복수인 경우 '$'를 구분자로 처리함.
	//ObjBGWC.SetProperty("Filter_CAType", "BGPT_GENERAL$BGPT_OFFICIAL$YESSIGN"); // 예) BGPT 개인용, 기관용 인증서와 금융결재원 인증서만이 선택 가능하도록 제한
	
	// 인증서의 OID를 통하여 선택 가능 인증서를 제한하고자 하는 경우 사용하며, 입력값이 복수인 경우 '$'를 구분자로 처리함.
	//ObjBGWC.SetProperty("Filter_OID", "1.2.410.100001.5.3.1.3"); // 예) 인증서 OID가 1.2.410.100001.5.3.1.3에 해당하는 경우에만 처리하도록 설정
	ObjBGWC.SetProperty("Filter_OID", "1.2.410.200004.5.3.1.1$1.2.410.200004.5.3.1.2$1.2.410.200005.1.1.5$1.2.410.200004.5.4.1.2$1.2.410.200004.5.2.1.1$1.2.410.200004.5.2.1.6.54$1.2.410.200004.5.2.1.5$1.2.410.200004.5.3.1.5$1.2.410.200004.5.1.1.7$1.2.410.200012.1.1.3$1.2.410.100001.5.3.1.1$1.2.410.100001.5.3.1.7$1.2.410.100001.5.3.1.9$1.2.410.100001.5.3.1.5$1.2.410.100001.2.1.1$1.2.410.100001.2.1.2$1.2.410.100001.2.1.3$1.2.410.200004.5.1.1.3$1.2.410.200004.5.1.1.10$1.2.410.200004.5.1.1.12$1.2.410.200004.5.3.1.6$1.2.410.200004.5.4.1.5$1.2.410.200012.1.1.9$1.2.410.100001.5.3.1.1$1.2.410.100001.5.3.1.5");

	// 인증서 기본 저장소의 위치를 지정 :  본 속성은 지정하지 않는 것을 권장함. HDD_DISK, REMOVABLE_DISK 가 설정 가능하며, C 드라이브외의 HDD를 사용하고자 하는 경우 REMOVABLE_DISK에서 처리가 가능함.
	//ObjBGWC.SetProperty("Filter_Storage", "HDD_DISK"); // 예)  인증서 저장소를 사용자가 선택하지 않고, C드라이브 만을 사용하고자 하는 경우 설정함.
	
	/* 보안 세션 형성, 사용자 신원확인 데이터 암호화를 위한 보안 서버용 인증서 문자열 설정(Base64 인코딩 문자열) */
	// 본 속성은 보안 채널 형성이나, 신원확인 시 필요한 속성이므로 이에 해당하지 않는다면, 지정하지 않아도 무방하다.
	//ObjBGWC.SetProperty("ServerCert", "MIIFUzCCBDugAwIBAgIDAxAaMA0GCSqGSIb3DQEBBQUAMFAxCzAJBgNVBAYTAktSMRwwGgYDVQQKDBNHb3Zlcm5tZW50IG9mIEtvcmVhMQ0wCwYDVQQLDARHUEtJMRQwEgYDVQQDDAtDQTEzNDA0MDAwMTAeFw0wODAzMjQwNzI1MDBaFw0xMDA2MjQwNzI0NTlaMH0xCzAJBgNVBAYTAktSMRwwGgYDVQQKDBNHb3Zlcm5tZW50IG9mIEtvcmVhMRgwFgYDVQQLDA9Hcm91cCBvZiBTZXJ2ZXIxHjAcBgNVBAsMFeq1kOycoeqzvO2Vmeq4sOyIoOu2gDEWMBQGA1UEAwwNU1ZSNzgwMDAwMDAwMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4lwcEudxyw9LE64Zj1tk1t9NoFkWlfLiLt43rFBA+Y1qvqJCDatq9rc4Jvma4xs65cJAjlgsFEa/9VYSzaCN+GGV39AV2AJP2YDaNP5rTcW0A+sESP1hMZV8F/RxwBJO3nG3lXjQHQtt7MmnQF1B/xVj/91bb2Oji54pbv5J6ECAwEAAaOCAoswggKHMGcGCCsGAQUFBwEBBFswWTBXBggrBgEFBQcwAoZLbGRhcDovL2xkYXAuZXBraS5nby5rcjozODkvY249R1BLSVJvb3RDQSxvdT1HUEtJLG89R292ZXJubWVudCBvZiBLb3JlYSxjPUtSMIGGBgNVHSMEfzB9gBQwQZ+6C42yF2bOLOE3AvCs/frvJ6FTpFEwTzELMAkGA1UEBhMCS1IxHDAaBgNVBAoME0dvdmVybm1lbnQgb2YgS29yZWExDTALBgNVBAsMBEdQS0kxEzARBgNVBAMMCkdQS0lSb290Q0GCEEeii68AF1oQx2cmA2B55VgwHQYDVR0OBBYEFP7F/4+q6ZWj99IOzjlCmLwTdIjLMA4GA1UdDwEB/wQEAwIFIDBgBgNVHSABAf8EVjBUMFIGCiqDGoaNIQUDAQcwRDAqBggrBgEFBQcCARYeaHR0cDovL3d3dy5lcGtpLmdvLmtyL2Nwcy5odG1sMBYGCCsGAQUFBwICMAoaCEVwa2lUZXN0MFwGA1UdEQRVMFOgUQYJKoMajJpECgEBoEQwQgwNU1ZSNzgwMDAwMDAwMTAxMC8GCiqDGoyaRAoBAQEwITAHBgUrDgMCGqAWBBSA6K+jeGUBJphBeZzGj/7UPvPLhTAxBgNVHRIEKjAooCYGCSqDGoyaRAoBAaAZMBcMFeq1kOycoeyduOyggeyekOybkOu2gDBxBgNVHR8EajBoMGagZKBihmBsZGFwOi8vbGRhcC5lcGtpLmdvLmtyOjM4OS9vdT1kcDVwNCxvdT1HUEtJLG89R292ZXJubWVudCBvZiBLb3JlYSxjPWtyP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QwDQYJKoZIhvcNAQEFBQADggEBAA5xa2FH86zXHuTn5GF/0KPQixoNs4okKRwVuQ1zHSN7y4kAISErhDf8LczQrIsZ2+LqGVvECpJ4umka8/M250eF+lZxgdBvr4vYY9rGVrDVeoZKCRRJ53dy6bfPUTRmf4kK5QGwhxVhdfTxwv5lT5Pi46AdQAFUbj1F2/6my+aYLNmAOiVOHyW4iMWfZc1UWnnD/Dma0R1NuDW6ApdaQ2H5U9EgE0W/jWatAM96v42QAlxIsxNr/dHbR20O2vGagWDkp48S0GjheH8UpMcbDTyc4ys48/BfjAEp4W5CRJfJevy2HRNvTaXegV0BhsDEUKsyqrVFeyinyq8wHb6caxU=");
	
	/* 인증서 선택창의 상단 이미지 변경을 위한 속성 설정 : 사용자 정의 배너를 사용하고자 하는 경우 아래 예와 같이 프로토콜 부터 이미지 파일 전체의 경로를 지정 */
	//ObjBGWC.SetProperty("Banner_Custom", "http://www.BGPT.go.kr/resource/banner.bmp"); // 예) 해당 URL에 존재하는 이미지를 다운받아, 인증서 선택창 상단 이미지로 설정
	
	/* 보안 서버, Envelop 메세지 수신 대상자의 암호화용 인증서 검증 옵션 설정 : 기본값은 모두 ON으로 설정 */
	ObjBGWC.SetProperty("CertValid_Path", "ON"); // 인증서 경로 검증 여부 지정
	ObjBGWC.SetProperty("CertValid_Time", "ON"); // 인증서 유효기간 점증 여부 지정
	ObjBGWC.SetProperty("CertValid_CRL", "ON"); // 인증서 폐지 목록 검증 지정
	
	/* 인증서 선택창에 표시되는 사용자 인증서의 검증 옵션 지정 : 기본값은 모두 ON으로 설정 */
	ObjBGWC.SetProperty("CertValidClient_Path", "ON"); // 인증서 경로 검증 여부 지정
	ObjBGWC.SetProperty("CertValidClient_Time", "ON"); // 인증서 유효기간 점증 여부 지정
	ObjBGWC.SetProperty("CertValidClient_CRL", "ON"); // 인증서 폐지 목록 검증 지정
}

