1.0.6 • Published 2 years ago

avcryptmail v1.0.6

Weekly downloads
1
License
MIT
Repository
-
Last release
2 years ago

NODEjs addon AvCryptMail

Компилируется под каждую требуемую версию nodeJS или Electron

Разрядность NODEjs зависит от разрядности используемой библиотеки AvcryptMail.dll (только x86)

Installation

$ npm install avcryptmail
$ yarn add avcryptmail

Usage

const avcrypt = require('avcryptmail');

Functions

AvCmInit
AvCmLogin
AvCmLogout
AvCmSign
AvCmImport

Используемые флаги

	AvCmInit: {
		AVCMF_STARTUP: 'Флаг для первоначальной инициализации библиотеки',
		AVCMF_SHUTDOWN:
			'Флаг для освобождения ресурсов библиотеки перед ее выгрузкой из адресного пространства процесса'
	},
	AvCmLogin: {
		AVCMF_NO_AUTH: 'Флаг для подключение без атентификации пользователя',
		AVCMF_FORCE_TOKEN_CONTROL: 'Флаг для контроля наличия вставленного носителя с личным ключом при авторизации',
		AVCMF_DENY_TOKEN_CONTROL:
			'Флаг для запрета контроля наличия вставленного носителя с личным ключом при авторизации',
		AVCMF_IGNORE_CRL_ABSENCE: 'Флаг для игнорирования отсутствия требуемого СОС',
		AVCMF_IGNORE_CRL_EXPIRE: 'Флаг для игнорирования истекшего срока действия требуемого СОС'
	},
	AvCmSign: {
		AVCMF_REPEAT_AUTHENTICATION: 'Флаг для повторного ввода пароля к контейнеру личных ключей перед выработкой ЭЦП',
		AVCMF_ADD_ALL_CERT: 'Флаг для включения всех необходимых сертификатов и СОС',
		AVCMF_ADD_SIGN_CERT: 'Флаг для включения только сертификата подписанта',
		AVCMF_ADD_ONLY_CERT: 'Флаг для включения только сертификатов',
		AVCMF_DETACHED: 'Флаг для для использования открепленной подписи'
	},
	AvCmImport: {
		AVCM_CERTIFICATE: 'DER-представление сертификата',
		AVCM_CRL: 'DER-представление списка отозванных сертификатов',
		AVCM_PKCS10_REQUEST: 'DER-представление запроса на сертификат в формате PKCS#10',
		AVCM_PKCS7_REQUEST: 'DER-представление подписанной заявки на сертификат в формате PKCS#7 SignedData',
		AVCM_ANY_FILE: 'Флаг для импорта сертификатов и/или СОС из файла'
	}

Пример использования для подписи

	console.log('Проверка AvCmInit');
	console.log(avcrypt.AvCmInit(avcrypt.Flags.AvCmInit.AVCMF_STARTUP));

	console.log('Проверка AvCmLogin');
	console.log(aveavcryptst.AvCmLogin(avcrypt.Flags.AvCmLogin.AVCMF_IGNORE_CRL_ABSENCE));

	let b64string =
		'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8UnF4UG9zdEluIHNjcmlwdE5hbWU9ImNvbS5DaGFuY2VEQi5FeHBvcnQgVXNlcnNEYXRhIi8+';
	let buf = Buffer.from(b64string, 'base64');
	console.log(buf);

	console.log('Проверка подписи');
	let result = avcrypt.AvCmSign(buf, avcrypt.Flags.AvCmSign.AVCMF_DETACHED | avcrypt.Flags.AvCmSign.AVCMF_ADD_SIGN_CERT);
	console.log(result.status);
	console.log(JSON.stringify(result));

	console.log('Проверка AvCmLogout');
	console.log(avcrypt.AvCmLogout());

	console.log('Очистили AvCmInit');
	console.log(avcrypt.AvCmInit(avcrypt.Flags.AvCmInit.AVCMF_SHUTDOWN));

Пример использования для загрузки СОС

	console.log('Проверка AvCmInit');
	console.log(avcrypt.AvCmInit(avcrypt.Flags.AvCmInit.AVCMF_STARTUP));

	console.log('Проверка AvCmLogin');
	console.log(avcrypt.AvCmLogin(avcrypt.Flags.AvCmLogin.AVCMF_NO_AUTH));

	console.log('Проверка загрузки СОС');
	const crl = fs.readFileSync("$name");
	console.log(avcrypt.AvCmImport(avcrypt.Flags.AvCmImport.AVCM_CRL, crl));

	console.log('Проверка AvCmLogout');
	console.log(avcrypt.AvCmLogout());

	console.log('Очистили AvCmInit');
	console.log(avcrypt.AvCmInit(avcrypt.Flags.AvCmInit.AVCMF_SHUTDOWN));
1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago