Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2019, 05:29
Новичок на форуме
Отправить личное сообщение для Rouge Rabbit Посмотреть профиль Найти все сообщения от Rouge Rabbit
 
Регистрация: 14.09.2019
Сообщений: 1

Обратная конвертация jQuery
Доброго времени суток
Помогите пожалуйста конвертировать код 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 -->
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просмотрела исходик jQuery Откорректируйте где не верно taksebe jQuery 5 23.11.2018 21:42
SOS! Не работает скрипт на сайте и не запускается видео Arin Библиотеки/Тулкиты/Фреймворки 6 22.06.2017 14:41
Динамический подсчет в таблице muraig jQuery 5 11.10.2014 15:54
Вопрос поддержки старых методов jQuery antonM jQuery 1 03.10.2012 23:08
Конвертация объекта jQuery в простой DOM-объект и наоборот trial jQuery 2 25.05.2010 00:33