crypto-pro-provider

4.1.0 • Public • Published

Crypto-pro-provider

The library provides methods for signing xml of requests for SMEV2 and SMEV3

Usage

  • Import module;
import {
  certificates,
  sign,
  detachedSign,
} from 'crypto-pro-provider';
  • First, you need to select certificate. For it use method certificates;
  certificates()
    .then((certificates) => {
      // list of certificates
    })
    .catch((error) => {
      // error
    });

Signature for SMEV 2:

  • Sign your message;
  // thumbprint - hash of the before selected certificate
  // base64 - message encoded to base64
  sign(thumbprint, base64)
    .then((signature) => {
      // signed message
    })
    .catch((error) => {
      // error
    });

Signature for SMEV 3:

Signing message for SMEV 3 is more difficult, than for SMEV 2, so you should have server-side for some operations.

Before signing your message by crypto-pro-provider, you should does several actions.

  • Sign your message by crypto server;
  • From received signature take node SignedInfo;
  • Canonicalize SignedInfo (http://www.w3.org/2001/10/xml-exc-c14n#);

Then canonicalized node send to client-side and sign by crypto-pro-provider:

  // thumbprint - hash of the before selected certificate
  // base64 - message encoded to base64
  // signatureTemplateAsBase64 - signature template encoded to base64
  detachedSign(thumbprint, base64, signatureTemplateAsBase64)
    .then((base64) => {
      // Signed XML as base64
    })
    .catch((error) => {
      // error
    });

Save signature.

That's all!

Changelog

Changelog here!

Readme

Keywords

Package Sidebar

Install

npm i crypto-pro-provider

Weekly Downloads

1

Version

4.1.0

License

MIT

Unpacked Size

61.3 kB

Total Files

5

Last publish

Collaborators

  • vmashanov