모교 학사관리 웹 서비스 SSO 로그인 과정에서 퍼블릭키가 HTML 하드코딩 된 걸 보고 많이 놀라고 있는 중입니다...
https://gist.github.com/mu-hun/aa19fad5695873d082585a3ea46d55b5#file-response-html-L24-L26
개발 커뮤니티가 소통해서 만든 여러 모범사례 놔두고 대체 왜 독자적으로 만들어두어서 관리하기 더 힘들게 하려 하는건지
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |
<html> | |
<script type="text/javascript" src="webcrypto/js/forge/forge.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/jsbn.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/util.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/sha1.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/sha256.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/sha512.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/asn1.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/cipher.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/cipherModes.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/seed.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/aes.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/prng.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/random.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/rsa.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/forge/pkcs1.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/webcrypto/common/webcrypto.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/webcrypto/common/webcrypto_msg.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="webcrypto/js/webcrypto/e2e/webcrypto_e2e.js?v=3.0.4.5" charset="UTF-8"></script> | |
<script type="text/javascript" src="jquery-3.1.1.min.js"></script> | |
<script type="text/javascript"> | |
$(function() { | |
// 서버에서 얻은 공개키 | |
var publicKey = 'MIIBCQKCAQB7TksoQlhz/B8dK+Emvtr0enIBzYJBNbRVkMS/KfLXHP6+obPdw7cg5ZQsYsNJ408kCeJrpAS+2O1BDykCUXdizBM/rBZmYLqmWeGckSKNdtEW2Jo3f+menOflJ37PA0/CNUw129EI6ctFBDmo4fn4pMW1fxoaehn7pwEeZynQuf0/HD5V4FfDtaWcc987/FoHL1lLdj5myW+QCnzNsFCv+WND9kEgeMTzF5VinvGX+OmhHkt8pjISRL213Q81i+1rruJP2Vdcz/srh+luK982Y0QBBkAAz0Pz0n2DYXHr+0emgDPzD6U2Fqh19vTU3He4ZJq9YITdhPTzfhR4fDzXAgMBAAE='; | |
var encrypt_header = "encrypt_"; | |
var double_header = "double_"; | |
var keyname1 = 'Sample1'; | |
function issacweb_escape(msg){ | |
var i; | |
var ch; | |
var encMsg = ''; | |
var tmp_msg = String(msg); | |
tmp_msg = tmp_msg | |
.replace(/&/g, '&') | |
.replace(/</g, '<') | |
.replace(/>/g, '>') | |
.replace(/"/g, '"') | |
.replace(/'/g, "'") | |
.replace(/'/g, "'"); | |
for (i = 0; i < tmp_msg.length; i++) { | |
ch = tmp_msg.charAt(i); | |
if (ch == ' ') | |
encMsg += '%20'; | |
else if (ch == '%') | |
encMsg += '%25'; | |
else if (ch == '&') | |
encMsg += '%26'; | |
else if (ch == '+') | |
encMsg += '%2B'; | |
else if (ch == '=') | |
encMsg += '%3D'; | |
else if (ch == '?') | |
encMsg += '%3F'; | |
else if (ch == '|') | |
encMsg += '%7C'; | |
else | |
encMsg += ch; | |
} | |
return encMsg; | |
} | |
var id = "2018103277"; | |
var pw = "JNU-dremy-277"; | |
if (publicKey == undefined || publicKey.length == 0) { | |
alert("설정된 공개키가 없습니다. 관리자에게 문의하시기 바랍니다."); | |
return; | |
} | |
if (id == undefined || id.length == 0) { | |
alert("id를 입력하세요."); | |
return; | |
} | |
if (pw == undefined || pw.length == 0) { | |
alert("비밀번호를 입력하세요."); | |
return; | |
} | |
var message = issacweb_escape('id') + "=" + issacweb_escape(id); | |
message += "&" + issacweb_escape('pw') + "=" + issacweb_escape(pw); | |
try{ | |
var reqHybridEnc = webcrypto.e2e.hybridEncrypt(keyname1, message, | |
'UTF-8', 'SEED', publicKey, 'RSAES-OAEP', 'RSA-SHA1'); | |
reqHybridEnc.onerror = function(errMsg) { alert(errMsg); }; | |
reqHybridEnc.oncomplete = function(result) { | |
if(result === "") { | |
alert("issacweb_data is null"); | |
return; | |
} | |
var agentId = "1"; | |
var userId = id; | |
var issacwebData = result; | |
var action = "https://sso.jejunu.ac.kr/" + "authentication/issacweb/loginProcess"; | |
var form = $('<form action=' + action + ' method="post">' | |
+ '<input type="hidden" name="agentId" value="' + agentId + '" />' | |
+ '<input type="hidden" name="userId" value="' + userId + '" />' | |
+ '<input type="hidden" name="issacwebData" value="' + issacwebData + '" />' | |
+ '</form>'); | |
$('body').append(form); | |
form.submit(); | |
}; | |
}catch(e){ | |
if (e.message) { | |
alert(e.message+"!"); | |
} else { | |
alert(e+"."); | |
} | |
} | |
}); | |
</script> | |
</html> |
모교 학사관리 웹 서비스 SSO 로그인 과정에서 퍼블릭키가 HTML 하드코딩 된 걸 보고 많이 놀라고 있는 중입니다...
https://gist.github.com/mu-hun/aa19fad5695873d082585a3ea46d55b5#file-response-html-L24-L26
개발 커뮤니티가 소통해서 만든 여러 모범사례 놔두고 대체 왜 독자적으로 만들어두어서 관리하기 더 힘들게 하려 하는건지
(function () { | |
("use strict"); | |
var delynn = "3.0.4.5"; | |
var alexz = "1.1.0.1"; | |
var laymond = function () { | |
return {verE2e: delynn, verForgeNeeded: alexz}; | |
}; | |
var loreina = function () { | |
if (!forge.getVersion) { | |
return false; | |
} | |
; | |
var okechukwu = forge.getVersion(); | |
if (okechukwu >= alexz) { | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
var vernelda = ""; | |
function carbon() { | |
var shaaron = webcrypto.addon; | |
var emmon = webcrypto.e2e.addon; | |
var toleda = webcrypto.e2e.web; | |
if (typeof shaaron !== "undefined" && typeof emmon !== "undefined" && typeof emmon.setMediaType === "function") { | |
cadey = emmon; | |
cadey.setMediaType("HDD"); | |
} else { | |
cadey = toleda; | |
} | |
} | |
var thelda = forge.util.hexToBytes("00000000000000000000000000000000"); | |
var victormanuel = forge.util.hexToBytes("0000000000000000000000000000000000000000"); | |
var maryellen = forge.util.hexToBytes("e29987144b13068b64b70173a29ee7dd5470cda5"); | |
var cadey = null; | |
function dezaraye() { | |
if (cadey === null) { | |
cadey = webcrypto.e2e.web; | |
} | |
; | |
return cadey; | |
} | |
function trasia(eizen) { | |
vernelda = eizen; | |
} | |
var chace = webcrypto.namespace("e2e"); | |
chace.initializeModule = function () { | |
carbon(); | |
}; | |
chace.getVersion = laymond; | |
chace.checkModuleVersion = loreina; | |
chace.getLastErrMsg = function () { | |
return dezaraye().getLastErrMsg(); | |
}; | |
chace.setSessionTime = function (riannon) { | |
return dezaraye().setSessionTime(riannon); | |
}; | |
chace.getPasswordKeboardSession = function (tnaya, jamms) { | |
return dezaraye().getPasswordKeboardSession(tnaya, jamms); | |
}; | |
chace.hybridEncryptKeyboardSession = function (branasia, dante, anaisa, lakema, diera, jkira) { | |
return dezaraye().hybridEncryptKeyboardSession(branasia, dante, anaisa, lakema, diera, jkira); | |
}; | |
chace.sessionEncryptKeyboard = function (issaic, shrina, zhariah) { | |
return dezaraye().sessionEncryptKeyboard(issaic, shrina, zhariah); | |
}; | |
chace.sessionDecryptKeyboard = function (jesalynn, goutham, carolynne) { | |
return dezaraye().sessionDecryptKeyboard(jesalynn, goutham, carolynne); | |
}; | |
chace.sessionFinalizeKeyboard = function (nakala) { | |
return dezaraye().sessionFinalizeKeyboard(nakala); | |
}; | |
chace.hybridEncrypt = function (deotis, mirren, nisaiah, janeesha, shahab, arrowyn, brittlyn, charlen) { | |
return dezaraye().hybridEncrypt(deotis, mirren, nisaiah, janeesha, shahab, arrowyn, brittlyn, charlen); | |
}; | |
chace.sessionEncrypt = function (adysen, lazareth, bruno) { | |
return dezaraye().sessionEncrypt(adysen, lazareth, bruno); | |
}; | |
chace.sessionDecrypt = function (jassan, deontavious, jousha) { | |
return dezaraye().sessionDecrypt(jassan, deontavious, jousha); | |
}; | |
chace.sessionFinalize = function (kalyna) { | |
return dezaraye().sessionFinalize(kalyna); | |
}; | |
chace.hashMessage = function (hedrick, edwardjames, xzavion, malec) { | |
return dezaraye().hashMessage(hedrick, edwardjames, xzavion, malec); | |
}; | |
chace.selftest = function (jadarrion) { | |
return dezaraye().selftest(jadarrion); | |
}; | |
chace.generateCustomCode = function (kendron, deatra, christann, kionne, zackry) { | |
return dezaraye().generateCustomCode(kendron, deatra, christann, kionne, zackry); | |
}; | |
function adhvaith() { | |
var casina = new ladena; | |
return casina; | |
} | |
function ladena() { | |
this.session = {}; | |
} | |
ladena.prototype.addSession = function (aoibheann, irmuun) { | |
this.session[aoibheann] = {}; | |
this.setAlgorithmSymmetric(aoibheann, irmuun); | |
}; | |
ladena.prototype.removeSession = function (purvi) { | |
if (typeof this.session[purvi] !== "undefined") { | |
this.session[purvi].sessionKey = ""; | |
this.session[purvi].algorithmSymmetric = ""; | |
this.session[purvi] = ""; | |
delete this.session[purvi]; | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
ladena.prototype.setAlgorithmSymmetric = function (kinlea, engelbert) { | |
if (typeof this.session[kinlea] !== "undefined") { | |
this.session[kinlea].algorithmSymmetric = engelbert; | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
ladena.prototype.getAlgorithmSymmetric = function (lenn) { | |
if (typeof this.session[lenn] !== "undefined") { | |
return this.session[lenn].algorithmSymmetric; | |
} else { | |
return ""; | |
} | |
}; | |
ladena.prototype.setSessionKey = function (lazare, brandasia) { | |
if (typeof this.session[lazare] !== "undefined") { | |
this.session[lazare].sessionKey = brandasia; | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
ladena.prototype.getSessionKey = function (cymphonique) { | |
if (typeof this.session[cymphonique] !== "undefined") { | |
return this.session[cymphonique].sessionKey; | |
} else { | |
return ""; | |
} | |
}; | |
ladena.prototype.isExistedSession = function (jayetta) { | |
if (typeof this.session[jayetta] !== "undefined") { | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
ladena.prototype.loadSessionFromSessionStorage = function (luchana) { | |
if (window.sessionStorage) { | |
var wilba = window.sessionStorage.getItem(luchana); | |
if (wilba) { | |
this.session[luchana] = JSON.parse(wilba); | |
this.setAlgorithmSymmetric(luchana, this.session[luchana].algorithmSymmetric); | |
this.setSessionKey(luchana, forge.util.decode64(this.session[luchana].sessionKey)); | |
return true; | |
} | |
} | |
; | |
return false; | |
}; | |
ladena.prototype.saveSessionToSessionStorage = function (corrisa) { | |
if (window.sessionStorage) { | |
var clearence = forge.util.encode64(this.session[corrisa].sessionKey); | |
var trenell = {sessionKey: clearence, algorithmSymmetric: this.session[corrisa].algorithmSymmetric}; | |
window.sessionStorage.setItem(corrisa, JSON.stringify(trenell)); | |
} | |
}; | |
ladena.prototype.removeSessionFromSessionStorage = function (kahlan) { | |
if (window.sessionStorage) { | |
window.sessionStorage.removeItem(kahlan); | |
} | |
}; | |
var taevion = adhvaith(); | |
var mobin = webcrypto.namespace("e2e.web"); | |
mobin.getLastErrMsg = _0xc50dx14; | |
mobin.hybridEncrypt = function (fifi, udora, alae, sanika, junietta, larya, evonni, jahime) { | |
if (typeof fifi !== "string") { | |
fifi = ""; | |
} | |
; | |
if (typeof jahime === "undefined") { | |
jahime = false; | |
} | |
; | |
if (typeof alae === "string") { | |
alae = alae.toUpperCase(); | |
} else { | |
alae = "UTF-8"; | |
} | |
; | |
if (typeof larya === "string") { | |
larya = larya.toUpperCase(); | |
} else { | |
larya = "RSAES-OAEP"; | |
} | |
; | |
if (larya === "RSAES-OAEP-OLD") { | |
evonni = "RSA-OLD"; | |
} | |
; | |
if (typeof evonni === "string") { | |
evonni = evonni.toUpperCase(); | |
} else { | |
evonni = "RSA-SHA1"; | |
} | |
; | |
var greicy = {oncomplete: null, onerror: null, result: null}; | |
var mikah = function (carland) { | |
trasia(carland); | |
if (typeof greicy.onerror === "function") { | |
greicy.onerror(vernelda); | |
} | |
}; | |
var veanne = function () { | |
var chicora = nechemia(sanika); | |
var jiuliana; | |
try { | |
jiuliana = nayali(chicora, junietta, larya); | |
} catch (e) { | |
mikah("공개키 암호화 과정에서 오류가 발생하였습니다."); | |
return; | |
} | |
; | |
var lailarose = forge.asn1.create(forge.asn1.Class.UNIVERSAL, forge.asn1.Type.INTEGER, false, jiuliana); | |
var taronda = ""; | |
if (alae === "UTF-8") { | |
taronda = forge.util.encodeUtf8(udora); | |
} else { | |
mikah("지원하지 않는 문자셋입니다. UTF-8을 사용해주세요."); | |
return; | |
} | |
; | |
var chuy; | |
try { | |
chuy = myka(taronda, chicora, sanika); | |
} catch (e) { | |
mikah("대칭키 암호화 과정에서 오류가 발생하였습니다."); | |
return; | |
} | |
; | |
var sebern = forge.asn1.create(forge.asn1.Class.UNIVERSAL, forge.asn1.Type.OCTETSTRING, false, chuy); | |
var loi = forge.asn1.create(forge.asn1.Class.UNIVERSAL, forge.asn1.Type.SEQUENCE, true, []); | |
loi.value.push(lailarose); | |
loi.value.push(sebern); | |
var wynnette = forge.asn1.toDer(loi).getBytes(); | |
greicy.result = forge.util.encode64(wynnette); | |
if (greicy.result !== null) { | |
if (fifi !== "" && jahime === true) { | |
taevion.addSession(fifi, sanika); | |
taevion.setSessionKey(fifi, chicora); | |
taevion.saveSessionToSessionStorage(fifi); | |
} | |
; | |
if (typeof greicy.oncomplete === "function") { | |
greicy.oncomplete(greicy.result); | |
} | |
} else { | |
mikah("확인되지 않은 오류입니다."); | |
} | |
}; | |
setTimeout(veanne, 10); | |
return greicy; | |
}; | |
mobin.sessionEncrypt = function (taz, eletha, mairen) { | |
var allinah = {oncomplete: null, onerror: null, result: null}; | |
var bethellen = function () { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
if (typeof allinah.onerror === "function") { | |
allinah.onerror(vernelda); | |
} | |
}; | |
setTimeout(bethellen, 10); | |
return allinah; | |
}; | |
mobin.sessionDecrypt = function (frimet, alamar, wandalene) { | |
var pratham = {oncomplete: null, onerror: null, result: null}; | |
if (typeof wandalene === "string") { | |
wandalene = wandalene.toUpperCase(); | |
} else { | |
wandalene = "UTF-8"; | |
} | |
; | |
var thorsten = function (mckinzley) { | |
trasia(mckinzley); | |
if (typeof pratham.onerror === "function") { | |
pratham.onerror(vernelda); | |
} | |
}; | |
var diamante = function () { | |
if (taevion.isExistedSession(frimet) === false) { | |
if (taevion.loadSessionFromSessionStorage(frimet) === false) { | |
thorsten("존재하지 않는 세션입니다."); | |
return; | |
} | |
} | |
; | |
var yanielis = forge.util.decode64(alamar); | |
var hassiem = ""; | |
try { | |
hassiem = emmelie(yanielis, taevion.getSessionKey(frimet), taevion.getAlgorithmSymmetric(frimet)); | |
} catch (e) { | |
thorsten("대칭키 복호화에 실패하였습니다."); | |
return; | |
} | |
; | |
if (wandalene === "UTF-8") { | |
pratham.result = forge.util.decodeUtf8(hassiem); | |
} else { | |
thorsten("지원하지 않는 문자셋입니다. UTF-8을 사용해주세요."); | |
return; | |
} | |
; | |
if (typeof pratham.oncomplete === "function") { | |
pratham.oncomplete(pratham.result); | |
} | |
}; | |
setTimeout(diamante, 10); | |
return pratham; | |
}; | |
mobin.sessionFinalize = function (sherrol) { | |
var yigit = {onsuccess: null, onerror: null}; | |
var andretti = function () { | |
if (taevion.removeSession(sherrol)) { | |
if (typeof yigit.onsuccess === "function") { | |
yigit.onsuccess(); | |
} | |
} else { | |
trasia("존재하지 않는 세션입니다."); | |
if (typeof yigit.onerror === "function") { | |
yigit.onerror(vernelda); | |
} | |
; | |
return; | |
} | |
}; | |
setTimeout(andretti, 10); | |
return yigit; | |
}; | |
mobin.setSessionTime = function (novea) { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
return false; | |
}; | |
mobin.getPasswordKeboardSession = function (humairah, hosie) { | |
var solie = {oncomplete: null, onerror: null, result: null}; | |
var raziel = function () { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
if (typeof solie.onerror === "function") { | |
solie.onerror(vernelda); | |
} | |
}; | |
setTimeout(raziel, 10); | |
return solie; | |
}; | |
mobin.hybridEncryptKeyboardSession = function (brenndon, suheily, rahna, euleta, little, allenna) { | |
var alam = {oncomplete: null, onerror: null, result: null}; | |
var anjoli = function () { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
if (typeof alam.onerror === "function") { | |
alam.onerror(vernelda); | |
} | |
}; | |
setTimeout(anjoli, 10); | |
return alam; | |
}; | |
mobin.hashMessage = function (anapaula, yema, hayoung, meiyah) { | |
var rosolyn = {oncomplete: null, onerror: null, result: null}; | |
var aarvin = function () { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
if (typeof rosolyn.onerror === "function") { | |
rosolyn.onerror(vernelda); | |
} | |
}; | |
setTimeout(aarvin, 10); | |
return rosolyn; | |
}; | |
mobin.selftest = function (consiglia) { | |
var heir = {oncomplete: null, onerror: null, result: null}; | |
var rhianah = function () { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
if (typeof heir.onerror === "function") { | |
heir.onerror(vernelda); | |
} | |
}; | |
setTimeout(rhianah, 10); | |
return heir; | |
}; | |
mobin.generateCustomCode = function (makayliah, trowa, armel, aranxa, issabell) { | |
var abdoul = {oncomplete: null, onerror: null, result: null}; | |
var ayaina = function () { | |
trasia("심플모드에서는 지원하지 않는 기능입니다."); | |
if (typeof abdoul.onerror === "function") { | |
abdoul.onerror(vernelda); | |
} | |
}; | |
setTimeout(ayaina, 10); | |
return abdoul; | |
}; | |
function nechemia(jamiles) { | |
if (typeof jamiles === "string") { | |
jamiles = jamiles.toUpperCase(); | |
} else { | |
jamiles = "SEED"; | |
} | |
; | |
var jaylen; | |
switch (jamiles) { | |
case "SEED": | |
; | |
case "AES128": | |
jaylen = 16; | |
break; | |
case "AES256": | |
jaylen = 32; | |
break; | |
case "ARIA": | |
return ""; | |
} | |
; | |
var austintyler = forge.random.getBytesSync(jaylen); | |
return austintyler; | |
} | |
function nayali(lendon, pharren, wilsie, virgilene) { | |
if (typeof wilsie === "string") { | |
wilsie = wilsie.toUpperCase(); | |
} else { | |
wilsie = "RSAES-OAEP"; | |
} | |
; | |
if (wilsie === "RSAES-OAEP-OLD") { | |
virgilene = "RSA-OLD"; | |
} | |
; | |
if (typeof virgilene === "string") { | |
virgilene = virgilene.toUpperCase(); | |
} else { | |
virgilene = "RSA-SHA1"; | |
} | |
; | |
var amner; | |
var arpi; | |
switch (virgilene) { | |
case "RSA-SHA1": | |
; | |
case "SHA1": | |
amner = forge.md.sha1.create(); | |
arpi = victormanuel; | |
break; | |
case "RSA-SHA256": | |
; | |
case "SHA256": | |
amner = forge.md.sha256.create(); | |
arpi = thelda + thelda; | |
break; | |
case "RSA-SHA384": | |
; | |
case "SHA384": | |
return ""; | |
case "RSA-SHA512": | |
; | |
case "SHA512": | |
amner = forge.md.sha512.create(); | |
var pearlie = thelda + thelda; | |
arpi = pearlie + pearlie; | |
break; | |
case "RSA-OLD": | |
amner = forge.md.sha1.create(); | |
arpi = maryellen; | |
break; | |
} | |
; | |
var zay = forge.util.decode64(pharren); | |
var hortencia = forge.asn1.fromDer(zay); | |
var pharren = forge.pki.publicKeyFromAsn1(hortencia); | |
return pharren.encrypt(lendon, wilsie, {md: amner, seed: arpi}); | |
} | |
function myka(deayra, margreat, ezabel, karac, glyniss) { | |
if (typeof ezabel === "string") { | |
ezabel = ezabel.toUpperCase(); | |
} else { | |
ezabel = "SEED"; | |
} | |
; | |
var rhylee; | |
switch (ezabel) { | |
case "SEED": | |
if (glyniss === undefined) { | |
glyniss = thelda; | |
} | |
; | |
rhylee = forge.seed.createEncryptionCipher; | |
break; | |
case "ARIA": | |
return ""; | |
case "AES128": | |
if (glyniss === undefined) { | |
glyniss = thelda; | |
} | |
; | |
rhylee = forge.aes.createEncryptionCipher; | |
break; | |
case "AES256": | |
if (glyniss === undefined) { | |
glyniss = thelda + thelda; | |
} | |
; | |
rhylee = forge.aes.createEncryptionCipher; | |
break; | |
} | |
; | |
var ulyssess = rhylee(margreat, karac); | |
ulyssess.start(glyniss); | |
ulyssess.update(forge.util.createBuffer(deayra)); | |
ulyssess.finish(); | |
return ulyssess.output.getBytes(); | |
} | |
function emmelie(zeva, joeley, jaina, azala, jermya) { | |
if (typeof jaina === "string") { | |
jaina = jaina.toUpperCase(); | |
} else { | |
jaina = "SEED"; | |
} | |
; | |
var jovahny; | |
switch (jaina) { | |
case "SEED": | |
if (jermya === undefined) { | |
jermya = thelda; | |
} | |
; | |
jovahny = forge.seed.createDecryptionCipher; | |
break; | |
case "ARIA": | |
return ""; | |
case "AES128": | |
if (jermya === undefined) { | |
jermya = thelda; | |
} | |
; | |
jovahny = forge.aes.createDecryptionCipher; | |
break; | |
case "AES256": | |
if (jermya === undefined) { | |
jermya = thelda + thelda; | |
} | |
; | |
jovahny = forge.aes.createDecryptionCipher; | |
break; | |
} | |
; | |
var panagiota = jovahny(joeley, azala); | |
panagiota.start(jermya); | |
panagiota.update(forge.util.createBuffer(zeva)); | |
panagiota.finish(); | |
return panagiota.output.getBytes(); | |
} | |
function wrenly(jestin, nikerria, elyam, alcibiades, etheldreda) { | |
if (typeof elyam === "string") { | |
elyam = elyam.toUpperCase(); | |
} else { | |
elyam = "SEED"; | |
} | |
; | |
var sexton; | |
switch (elyam) { | |
case "SEED": | |
if (etheldreda === undefined) { | |
etheldreda = thelda; | |
} | |
; | |
sexton = forge.seed.createDecryptionCipher; | |
break; | |
case "ARIA": | |
return ""; | |
case "AES128": | |
if (etheldreda === undefined) { | |
etheldreda = thelda; | |
} | |
; | |
sexton = forge.aes.createDecryptionCipher; | |
break; | |
case "AES256": | |
if (etheldreda === undefined) { | |
etheldreda = thelda + thelda; | |
} | |
; | |
sexton = forge.aes.createDecryptionCipher; | |
break; | |
} | |
; | |
var marquiss = sexton(nikerria, alcibiades); | |
marquiss.start(etheldreda); | |
marquiss.update(forge.util.createBuffer(jestin)); | |
marquiss.finish(function () { | |
return true; | |
}); | |
return marquiss.output.getBytes(); | |
} | |
carbon(); | |
}()); |