Доброго времени суток
Помогите пожалуйста конвертировать код 2 скриптов в Native и объединить в один JS файл
script1.js
var EC = elliptic.elliptic().ec;
var ec = new EC('secp256k1');
var keypair = ec.genKeyPair();
function update() {
var prv = keypair.getPrivate('hex');
var pub = keypair.getPublic('hex');
$('#privateKey').val(bigInt(prv, 16).toString());
$('#publicKey').val(pub);
}
function random() {
keypair = ec.genKeyPair();
update();
}
$(function() {
$('#randomButton').click(random);
$('#privateKey').bind('keyup', function() {
$('#privateKey').val($('#privateKey').val().replace(/\D/g, ''));
keypair = ec.keyFromPrivate(bigInt($('#privateKey').val()).toString(16));
update();
});
update();
var keyPublic = $('#publicKey').val();
var keyPrivate = $('#privateKey').val();
});
script2.js
var EC = elliptic.elliptic().ec;
var ec = new EC('secp256k1');
var keypair = ec.genKeyPair();
function update() {
var prv = keypair.getPrivate('hex');
var pub = keypair.getPublic('hex');
$('#privateKey').val(bigInt(prv, 16).toString());
$('#publicKey').val(pub);
}
$(function() {
$('#sign-button').click(function() {
var binaryMessage = buffer.Buffer.from(CryptoJS.SHA256($('#sign-message').val()).toString(CryptoJS.enc.Hex));
var hexSignature = buffer.Buffer.from(keypair.sign(binaryMessage).toDER()).toString('hex');
$('#sign-signature').val(hexSignature);
$('#verify-signature').val(hexSignature);
update();
});
$('#verify-button').click(function() {
$('#publicKey').val($('#publicKey').val().replace(/[^0-9a-fA-F]/g, ''));
var tmpKey;
try {
tmpKey = ec.keyFromPublic($('#publicKey').val(), 'hex');
var binaryMessage = buffer.Buffer.from(CryptoJS.SHA256($('#verify-message').val()).toString(CryptoJS.enc.Hex));
if (tmpKey.verify(binaryMessage, $('#verify-signature').val())) {
<!-- Signature accepted -->
} else {
<!-- Signature denied -->
}
} catch(e) {
<!-- Incorrect signature -->
}
});
$('#privateKey').bind('keyup', function() {
$('#privateKey').val($('#privateKey').val().replace(/\D/g, ''));
keypair = ec.keyFromPrivate(bigInt($('#privateKey').val()).toString(16));
update();
});
$('#sign-message').bind('keyup', function() {
$('#verify-message').val($('#sign-message').val());
});
$('#verify-message').bind('keyup', function() {
$('#sign-message').val($('#verify-message').val());
});
update();
});
P.S. Первый скрипт генерирует ключевую пару (Public/Private), второй генерирует сигнатуру любого текстового сообщения подписанного приватным ключом и проверяет подписанный текст уже по публичному ключу
... хотелось бы привести все эти jQuery к нативному виду по типу:
function BuildKeys() {
return {
"Public": publicKey,
"Private": privateKey
}
}
function SignMessage(message, privateKey) {
return hexSignature;
}
function VerifyMessage(message, publicKey, hexSignature) {
return true; <!-- or false -->
}