//************************************************************************************* // 파일명 : sg_encrypt.js // 작성자 : 고영주 // 최초 작성일 : 2003년 8월 6일 // 최종 수정자 : 박옥자 // 최종 수정일 : 2006년 9월 20일 //************************************************************************************* function encryptSessionKey( strKeyID, strKmCert ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode( "NO_USER_ID" ); setErrorMessage( "" ); setErrorFunctionName( "encryptSessionKey()" ); return ""; } if ( strKmCert == null || strKmCert == "") { setErrorCode("NO_DATA_VALUE : KmCert"); setErrorMessage(""); setErrorFunctionName( "encryptSessionKey()" ); return ""; } // 20060920, modified by ojpark var bReturn = GenSymmetricKeySG( strKeyID ); if ( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "encryptSessionKey()" ); return ""; } // 20060920, modified by ojpark var strEncryptedSessionKey = GetEncryptSymmetricKeySG( strKeyID, strKmCert ); if ( strEncryptedSessionKey == "" ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "encryptSessionKey()" ); return ""; } return removeCRLF( strEncryptedSessionKey ); } function decryptSessionKey( strKeyID, strEncryptedSessionKey ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode( "NO_USER_ID" ); setErrorMessage( "" ); setErrorFunctionName( "decryptSessionKey()" ); return false; } if ( strEncryptedSessionKey == null || strEncryptedSessionKey == "" ) { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "decryptSessionKey()" ); return false; } var bReturn = selectCertificate( strKeyID ); if ( !bReturn ) { setErrorFunctionName( "decryptSessionKey()" ); return false; } // 20060920, modified by ojpark bReturn = SetDecryptSymmetricKeySG( strKeyID, strEncryptedSessionKey ); if( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "decryptSessionKey()" ); return false; } return true; } // 20060920, added by ojpark function decryptSessionKeyEx( strCertID, strKeyID, strEncryptedSessionKey ) { if ( strCertID == null || strCertID == "" ) { setErrorCode( "NO_USER_ID" ); setErrorMessage( "" ); setErrorFunctionName( "decryptSessionKey()" ); return false; } if ( strKeyID == null || strKeyID == "" ) { setErrorCode( "NO_KEY_ID" ); setErrorMessage( "" ); setErrorFunctionName( "decryptSessionKey()" ); return false; } if ( strEncryptedSessionKey == null || strEncryptedSessionKey == "" ) { setErrorCode("NO_DATA_VALUE : EncryptedSessionKey"); setErrorMessage( "" ); setErrorFunctionName( "decryptSessionKey()" ); return false; } var bReturn = selectCertificate( strCertID ); if ( !bReturn ) { setErrorFunctionName( "decryptSessionKey()" ); return false; } bReturn = SetDecryptSymmetricKeySG( strKeyID, strEncryptedSessionKey ); if( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "decryptSessionKey()" ); return false; } return true; } function encryptDataString( strKeyID, strMessage ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode( "NO_KEY_ID" ); setErrorMessage( "" ); setErrorFunctionName( "encryptDataString()" ); return ""; } if ( strMessage == null || strMessage == "" ) { setErrorCode("NO_DATA_VALUE"); setErrorMessage(""); setErrorFunctionName( "encryptDataString()" ); return ""; } // 20060920, modified by ojpark var strEncryptedData = EncryptDataSG( strKeyID, strMessage ); if ( strEncryptedData == "" ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "encryptDataString()" ); return ""; } return removeCRLF( strEncryptedData ); } function decryptDataString( strKeyID, strEncryptedMessage ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode("NO_KEY_ID"); setErrorMessage( "" ); setErrorFunctionName( "decryptDataString()" ); return ""; } if ( strEncryptedMessage == null || strEncryptedMessage == "" ) { setErrorCode("NO_DATA_VALUE"); setErrorMessage(""); setErrorFunctionName( "decryptDataString()" ); return ""; } // 20060920, modified by ojpark var strDecryptedData = DecryptDataSG( strKeyID, strEncryptedMessage ); if ( strDecryptedData == "" ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "decryptDataString()" ); return ""; } return strDecryptedData; } function encryptDataFile( strKeyID, strInputFilePath, strOutputFilePath ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode("NO_KEY_ID"); setErrorMessage( "" ); setErrorFunctionName( "encryptDataFile()" ); return false; } if ( strInputFilePath == null || strInputFilePath == "" || strOutputFilePath == null || strOutputFilePath == "" ) { setErrorCode("NO_DATA_VALUE"); setErrorMessage(""); setErrorFunctionName( "encryptDataFile()" ); return false; } // 20060920, modified by ojpark bReturn = EncryptFileSG( strKeyID, strInputFilePath, strOutputFilePath ); if( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "encryptDataFile()" ); return false; } return bReturn; } function decryptDataFile( strKeyID, strInputFilePath, strOutputFilePath ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode("NO_KEY_ID"); setErrorMessage( "" ); setErrorFunctionName( "decryptDataFile()" ); return false; } if ( strInputFilePath == null || strInputFilePath == "" || strOutputFilePath == null || strOutputFilePath == "" ) { setErrorCode("NO_DATA_VALUE"); setErrorMessage(""); setErrorFunctionName( "decryptDataFile()" ); return false; } // 20060920, modified by ojpark var bReturn = DecryptFileSG( strKeyID, strInputFilePath, strOutputFilePath ); if( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "decryptDataFile()" ); return false; } return bReturn; } function clearSymmetricKey( strKeyID ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode("NO_KEY_ID"); setErrorMessage( "" ); setErrorFunctionName( "clearSymmetricKey()" ); return false; } // 20060920, modified by ojpark var bReturn = ClearSymmetricKeySG( strKeyID ); if( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "clearSymmetricKey()" ); return false; } return bReturn; } // 20060920, added by ojpark function setBase64SymmetricKeyIV( strKeyID, strB64SymKey, strB64IV ) { if ( strKeyID == null || strKeyID == "" ) { setErrorCode( "NO_KEY_ID" ); setErrorMessage( "" ); setErrorFunctionName( "setBase64SymmetricKeyIV()" ); return false; } if ( strB64SymKey == null || strB64SymKey == "" || strB64IV == null || strB64IV == "" ) { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "setBase64SymmetricKeyIV()" ); return false; } bReturn = SetB64SymmetricKeySG( strKeyID, strB64SymKey, strB64IV ); if( !bReturn ) { setErrorCode( "" ); setErrorMessage( GetLastErrMsg() ); setErrorFunctionName( "setBase64SymmetricKeyIV()" ); return false; } return true; } function genSignEnvInit(certString) { if(certString == null || certString == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "genSignEnvInit()" ); return ""; } var envSymmKey = GenSignEnvInit(certString); if("" == envSymmKey) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvInit()"); return ""; } return envSymmKey; } function genSignEnvSelfKey(strCertID)//ver 3.1.10.6 { if ( strCertID == null || strCertID == "" ) { setErrorCode( "NO_USER_ID" ); setErrorMessage( "" ); setErrorFunctionName( "genSignEnvSelfKey()" ); return ""; } envSymmKey = GenSignEnvelopeSelfKey(strCertID); if("" == envSymmKey) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvSelfKey()"); return ""; } return envSymmKey; } function genSignEnvUpdate(inData) { if(inData == null || inData == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "genSignEnvUpdate()" ); return ""; } var envData = GenSignEnvUpdate(inData); if("" == envData) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvUpdate()"); return ""; } return envData; } function genSignEnvUpdateFile(inFile, outFile) { if(inFile == null || inFile == "" || outFile == null || outFile == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "genSignEnvUpdateFile()" ); return false; } var isSucceeded = GenSignEnvUpdateFile(inFile, outFile); if(false == isSucceeded) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvUpdateFile()"); return false; } return true; } function genSignEnvFinal() { var signValue = GenSignEnvFinal(); if("" == signValue) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvFinal()"); return ""; } return signValue; } function vrfSignEnvInit(envSymmKey) { if(envSymmKey == null || envSymmKey == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "vrfSignEnvInit()" ); return false; } var isSucceeded = VrfSignEnvInit(envSymmKey); if(false == isSucceeded) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("vrfSignEnvInit()"); return false; } return true; } function vrfSignEnvUpdate(inData) { if(inData == null || inData == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "vrfSignEnvUpdate()" ); return ""; } var decData = VrfSignEnvUpdate(inData); if("" == decData) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("vrfSignEnvUpdate()"); return ""; } return decData; } function vrfSignEnvUpdateFile(inFile, outFile) { if(inFile == null || inFile == "" || outFile == null || outFile == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "genSignEnvUpdateFile()" ); return false; } var isSucceeded = VrfSignEnvUpdateFile(inFile, outFile); if(false == isSucceeded) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvUpdateFile()"); return false; } return true; } function vrfSignEnvFinal(signValue, certString) { if(signValue == null || signValue == "" || certString == null || certString == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "vrfSignEnvFinal()" ); return false; } var isSucceeded = VrfSignEnvFinal(signValue, certString); if(false == isSucceeded) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("vrfSignEnvFinal()"); return false; } return true; } function SetEncryptSymmetricKey(strCertID, strKeyID, encKey) { if(strCertID == null || strCertID == "" || strKeyID == null || strKeyID == "" || encKey == null || encKey == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "SetEncryptSymmetricKey()" ); return false; } if(false == isLoadedCertificate(strCertID)) { setErrorCode(""); setErrorMessage( "Not Loaded Cert" ); setErrorFunctionName( "SetEncryptSymmetricKey()" ); return false; } SetSessionID( strCertID ); if(false == SetDecryptSymmetricKeySG(strKeyID, encKey) ) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("SetEncryptSymmetricKey()"); return false; } return true; } function genSignEnvInitEx(certString, SignAlgName) { if(certString == null || certString == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "genSignEnvInitEx()" ); return ""; } var envSymmKey = GenSignEnvInitEx(certString, SignAlgName); if("" == envSymmKey) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("genSignEnvInit()"); return ""; } return envSymmKey; } function vrfSignEnvInitEx(envSymmKey, SignAlgName) { if(envSymmKey == null || envSymmKey == "") { setErrorCode("NO_DATA_VALUE"); setErrorMessage( "" ); setErrorFunctionName( "vrfSignEnvInit()" ); return false; } var isSucceeded = VrfSignEnvInitEx(envSymmKey, SignAlgName); if(false == isSucceeded) { setErrorCode( "" ); setErrorMessage(GetLastErrMsg()); setErrorFunctionName("vrfSignEnvInit()"); return false; } return true; }