How to use @peculiar/webcrypto - 8 common examples

To help you get started, we’ve selected a few @peculiar/webcrypto examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github PeculiarVentures / webcrypto-liner / test / utils / init.ts View on Github external
import { Crypto } from "@peculiar/webcrypto";
import { Crypto as WebCrypto, setCrypto } from "../../src";

const crypto = new Crypto();
const nativeGenerateKey = crypto.subtle.generateKey;
const nativeExportKey = crypto.subtle.exportKey;

// asmCrypto doesn't have key generation function and uses native generateKey with RSA-PSS
crypto.subtle.generateKey = async function () {
  if (arguments[0]?.name !== "RSA-PSS") {
    throw new Error("Function is broken for test cases");
  }
  return nativeGenerateKey.apply(this, arguments);
};

// asmCrypto doesn't have key generation function and uses native exportKey with RSA-PSS
crypto.subtle.exportKey = async function () {
  if (!(
    (arguments[0] === "pkcs8"
      || arguments[0] === "spki")
github PeculiarVentures / webcrypto-liner / src / native.ts View on Github external
import * as core from "webcrypto-core";

let window: any;
if (typeof self === "undefined") {
  // NodeJS implementation
  const { Crypto } = require("@peculiar/webcrypto");
  window = {
    crypto: new Crypto(),
  };
} else {
  window = self;
}

export const nativeCrypto: core.NativeCrypto =
  (window as any).msCrypto  // IE
  || window.crypto          // other browsers
  || {};                    // if crypto is empty
export let nativeSubtle: core.NativeSubtleCrypto | null = null;
try {
  nativeSubtle = nativeCrypto.subtle || (nativeCrypto as any).webkitSubtle;
} catch (err) {
  console.warn("Cannot get subtle from crypto", err);
  // Safari throws error on crypto.webkitSubtle in Worker
}
github PeculiarVentures / xadesjs / test / vectors / reading.ts View on Github external
import { Crypto } from "@peculiar/webcrypto";
import * as assert from "assert";
import { Application } from "xmldsigjs";
import * as XAdES from "../../src";
import { SignedXml, xml } from "../../src";
const { QualifyingProperties, SignatureTimeStamp, CertificateValues, RevocationValues, ArchiveTimeStamp } = xml;
const { CounterSignature } = xml;

Application.setEngine("NodeJS", new Crypto());

const X_AT_SIT_1 = `RYPCI7Bgg4yXSOBNABfWOl7jpMkI/6lbd8kh7w9uqyY=pIYqd/UZQQtVMhoQH+Zw2HFLHya+tP7wzEzwDArGTZk=xiXWFbPsEOUD69k51vrOKb84fCEq43SYD/pmQ2C8QmxkOTGlktFFYNhhXvxjyWPiytmBJmW2qHOGTcITvxJw1w==MIIErjCCA5agAwIBAgIEeZaQJDANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UEBhMCQVQxSDBGBgNVBAoMP0EtVHJ1c3QgR2VzLiBmLiBTaWNoZXJoZWl0c3N5c3RlbWUgaW0gZWxla3RyLiBEYXRlbnZlcmtlaHIgR21iSDEeMBwGA1UECwwVYS1zaWduLVByZW1pdW0tU2lnLTAyMR4wHAYDVQQDDBVhLXNpZ24tUHJlbWl1bS1TaWctMDIwHhcNMTYwMzI0MTYxOTIyWhcNMjEwMzI0MTUxOTIyWjB8MQswCQYDVQQGEwJBVDEbMBkGA1UEAwwSQWxleGFuZGVyIE1hcnNhbGVrMREwDwYDVQQEDAhNYXJzYWxlazESMBAGA1UEKgwJQWxleGFuZGVyMRUwEwYDVQQFEwwzNzg5MTkzMjE0NjMxEjAQBgNVBAwMCURpcGwuSW5nLjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABN7mOMa18/wZyZkotFRZ0VsLN3aKhAbxduaGeB66+A6RdhQgQ6vmlno3PNTtKERAfxjtZI9tDGJcZ8mYG+17YLyjggHlMIIB4TB7BggrBgEFBQcBAQRvMG0wQgYIKwYBBQUHMAKGNmh0dHA6Ly93d3cuYS10cnVzdC5hdC9jZXJ0cy9hLXNpZ24tUHJlbWl1bS1TaWctMDJhLmNydDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AuYS10cnVzdC5hdC9vY3NwMA4GA1UdDwEB/wQEAwIGwDAnBggrBgEFBQcBAwEB/wQYMBYwCAYGBACORgEBMAoGCCsGAQUFBwsBMIGaBgNVHR8EgZIwgY8wgYyggYmggYaGgYNsZGFwOi8vbGRhcC5hLXRydXN0LmF0L291PWEtc2lnbi1QcmVtaXVtLVNpZy0wMixvPUEtVHJ1c3QsYz1BVD9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0P2Jhc2U/b2JqZWN0Y2xhc3M9ZWlkQ2VydGlmaWNhdGlvbkF1dGhvcml0eTAJBgNVHRMEAjAAMFkGA1UdIARSMFAwCAYGBACLMAEBMEQGBiooABEBCzA6MDgGCCsGAQUFBwIBFixodHRwOi8vd3d3LmEtdHJ1c3QuYXQvZG9jcy9jcC9hLXNpZ24tUHJlbWl1bTATBgNVHSMEDDAKgAhN3+H/S9nJ3zARBgNVHQ4ECgQITpG2911UJ8swDQYJKoZIhvcNAQEFBQADggEBANOLX0OEeEL+BNd+68LDQjgk1zJoSkqzj1DQs4l4j2ug2ERtDk9Yh8MdO6cbbbMriltJrq2a7dDeri7Y8ZY3YBmHlsNb5yDj3YruKXwUDs6nEBeASt5nWaRXgjeLnbWe2J/71L8Gurip2+l0aStOjyvpCF5wUGbeReXCKwL6GVPwKFZJIdSqpP+FzN60ZLWx8TXwIf6weVodNFiYlg3eU33o4yY2sFNSUMKKyEEvl88bAq8v/iP5mIBYSxpGRF75L6LulAeFTG5CO3q95eJS/37+oyRPqhuu0Aqvva2Li0vmt+neMmW8O+jjArZaiBNMz8+5i91TmMOcM/y+2vfrhLw=2016-04-28T14:54:07ZXpGNNQXJ+Vd02hJtq2Ob8VdTJdY=CN=a-sign-Premium-Sig-02,OU=a-sign-Premium-Sig-02,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT2039910436text/xml77u/PHJvb3Q+PC9yb290Pg==`;

const X_BE_CONN_10 = `/cikpAxk8xGgUHwklwrsJ2/Qq/B26luNYw3fpY26ug42WCF2lkwpKY7vsvTITKwrO7dM1dQk6ITpSDL4dbBX0w==SXALBTUm1vexewLLw49h6rCch7GQ2/30oiE/dOEGAaLJ8fM/n0DdsJu9cpYT4QGiihjQAK18q5ZbTnKRDD4+XA==VYfWeXC17kgRIT9/UhHoxf333EW1UMbOQrmPCpkQekuQtiSTqZ5k+d64ZnkDnFdBn0Or9yqlloaXTAtGaPTAg/c9/D44VofFt4uPJoHW76lwuigIe+TDI89vHVEVAIBMXlnhox4a3SCWgiI+Sj0Mcio1F2KeAGjhgBn1PzO8/uN0lkSS+fhmrhh5Wf9vuZrjpK/EOfOX3UhGPwFGqSHpRsZeTejyBp6hJT07E7EQMtclJBvUrLl6VU5kDL0iX2iZnju6BcP/YQAJ0WXm5yHzyewwfaBjD5L3cIYdUzq3WUKm9LHd01I94R6Q+zIVcApnlGZcdPY0AEzsTXs3ElA8/w==MIIE+DCCA+CgAwIBAgIRANjuOPqzu1t0TDYHP2jVMA4wDQYJKoZIhvcNAQELBQAwXTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMzAxBgNVBAMTKkdsb2JhbFNpZ24gUGVyc29uYWxTaWduIDIgQ0EgLSBTSEEyNTYgLSBHMjAeFw0xNjAyMjYxMzIzMzhaFw0xOTAyMjYxMzIzMzhaMHYxCzAJBgNVBAYTAkJFMRAwDgYDVQQHEwdBbnR3ZXJwMRMwEQYDVQQKEwpDb25uZWN0aXZlMRQwEgYDVQQDEwtlU2lnbmF0dXJlczEqMCgGCSqGSIb3DQEJARYbZmlsaXAudmVycmV0aEBjb25uZWN0aXZlLmJlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuNivfBhtykf+WktBrUe3szYt/q+pyYScUudy3hX3TwgvtCYq7eQwTChA366GzLfgoFZP5sen6lYmG+u4ahiizVEp8rLRIqIPNJXto5jjMjkB7KXoMSosuBGWbsDiizIUooE+hN7kw9mrqrRf8Glb1OOV+ccVJi2CF7RKOtAEFhCDyNBGK97sxIj6SGASsRDKbNw0UDVxtojgKEfNG6+n+7DrA8qqzMdPmXK6D7SyzytC7jSZzZAxRQmeiS3lCzSCc2MSNrL5y3FLQiQerCywWfVNca3tmdUEJ3jUOQMdjnkxgycFibbOB7DgiosVsQpz91zO2pLp4Nq+r56KmzknaQIDAQABo4IBmDCCAZQwDgYDVR0PAQH/BAQDAgWgMEwGA1UdIARFMEMwQQYJKwYBBAGgMgEoMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMCYGA1UdEQQfMB2BG2ZpbGlwLnZlcnJldGhAY29ubmVjdGl2ZS5iZTAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDBHBgNVHR8EQDA+MDygOqA4hjZodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzL2dzcGVyc29uYWxzaWduMnNoYTJnMi5jcmwwWQYIKwYBBQUHAQEETTBLMEkGCCsGAQUFBzAChj1odHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24uY29tL2NhY2VydC9nc3BlcnNvbmFsc2lnbjJzaGEyZzIuY3J0MB0GA1UdDgQWBBTD+eNJcDmzaGJeSdyLvx9fuHZ5kjAfBgNVHSMEGDAWgBQ/bFdEnlefff1oOcu58RrkuXZQODANBgkqhkiG9w0BAQsFAAOCAQEAmq687Y6atEKxcnIK0lYu3V7o+QFrQobAl7SoVLM0iobZFLv2hfmtUMVh31RPxlzJdQX/Jyugs/7mDoqHbSxDsWE5z9W78yLcS3e5vd7RYRjP2+K+4qlyq6KiMxBiZwEIS7DDloXji9ARLCtuR49UD/m/BdOLsQ2EEuJUy79c3O2fZOG8VXkA7EAhrNFunqQLhsTJX3KKNbqSDbk5qqjkTkwcZOTTHBHgHsS4KhK34+fu7J8XCbQuB8yZaU/D/P0Rqq0VRRvQgr/XluVQfeKadqsRy1uNSQPQaPmq4eqyBhyfFea2Tl0ROFYftL0xN0IhL/oYVyQfHi/Z1O2NlBgkuA==MIIEWTCCA0GgAwIBAgILBAAAAAABMYnGMwYwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwODAyMTAwMDAwWhcNMTkwODAyMTAwMDAwWjBdMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEzMDEGA1UEAxMqR2xvYmFsU2lnbiBQZXJzb25hbFNpZ24gMiBDQSAtIFNIQTI1NiAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApgE6Bj5MPSUnvWXsVw3T83OPrVnh4H83EkyxLGF6+C1RRzDHJZiSgcOX4WhAxd7wlJito4g3tSlm+8Nr19VWmi7GWeTW6l9FMclGlTrfpKUdMQTlmddNhZDelMvnWgSg8vh8vg4gcc7xd7Qftf/2fD43y03EIKIYpEEwJwcde4kt5bekVQhIZpXB9zabJ7yaMjD5uMgnqC2MrrpZpRbp9ZjfbeqSRLxb27N0JcpWkY+RlSGyapZ8aWDaax9vHc7y2jwtoKTRGqVW9X6DtmtjvEHB1YZ9koJF3lHWS3ZAFg4G1l9EFXt188yyMjhdxBS4rJNilxyPtVO8t1p/4H5NmQIDAQABo4IBKTCCASUwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFD9sV0SeV599/Wg5y7nxGuS5dlA4MEcGA1UdIARAMD4wPAYEVR0gADA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmdsb2JhbHNpZ24ubmV0L3Jvb3QtcjMuY3JsMD4GCCsGAQUFBwEBBDIwMDAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AyLmdsb2JhbHNpZ24uY29tL3Jvb3RyMzAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAZQXbpodKnOC3uGNy7zFRCxjalxvDMwBLoTLH6bzRd+mixceKwU/Sqc8SedsX4Yff9zDYM4UsheQ8Fc54VFLHblW121Uk9kZBw167YxvbNwMFH3nSxdvwD/l931lfMYpN/vnVsAWfg5fUEBhmVxJIgtEyKIelUxDuuF8Ls0KEhChEvuy76jGIg4weFiQKF4YaGd/mSY8Njx/cg1SM+V+1SmRDp4FX/JnQEqnrDTh4raFrd1J38ZL9/7KhWLbNAabDiqHyt32KOwmCOvmo4IrziNFLxWnsl8oX5G8OTfx3Oxd0Ee6+J7mYybD0OC3MBnbP3cSi+QV5BidYyLq2H4+0bQ==2016-04-18T09:10:09ZRng2CooXsen7dOYSNbDtwPggzsM=CN=GlobalSign PersonalSign 2 CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE288350169419475868349393263988944744462yIiEUu5bMuMyvzmYuZhd87NlQ6s=CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R34835703278459828975317766application/octet-streamPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Q29udGVudD4NCjxwPlNpZ25pbmcgbWV0aG9kIC0gVG9vbCAtIENvbmZvcm1hbmNlIGxldmVsIC0gUEtDUy9Db25uZWN0aXZlIHBsdWdpbiAtIEVuY3J5cHRpZTwvcD4NCjxwPlhBZEVTIC0gRFNTIC0gQiAtIFBLQ1MgLSBTSEE1MTIgLSBFbnZlbG9waW5nPC9wPg0KPC9Db250ZW50Pg==`;

const X_BG_BOR_1 = `2016-04-11T13:47:15ZAzoH1LMpBhOQFKS80NgcGFtUFJI=2.5.4.20=#13102b333539203220392032313520313030,1.2.840.113549.1.9.1=#161263613571657340622d74727573742e6f7267,2.5.4.17=#130431373834,STREET=bul. Tsarigradsko shose No 117,CN=B-Trust Operational CA QES,OU=B-Trust,O=BORICA - BANKSERVICE AD\, EIK 201230426,L=Sofia,ST=Sofia,C=BG10027144Sofia1784bul. Tsar Boris 3 41,Sofia,PK:1612,EGN:8205301708BGПОДПИСАН ОТtext/xml`;

const X_FR_CS_3 = `2016-04-12T10:34:36.132+02:00arKMp/9CG2nbErN89ysQMIo1xKZONGn9VJ+BmjRSse8=CN=Secu Test Intermediate1, OU=SECU, O=CS, C=FR41061.2.3s7DOPlXltkzAM96+KVFfxyBRYEVB4cR2BRF8eUaBPk8=Paris75013FranceMarketing manager1.2.840.113549.1.9.16.6.3`;

const X_BE_CONN_26 = `2016-04-18T11:07:17Z13t0/E8vfe/xdM+VBjmfdSA6xxo=2.5.4.5=#1306323031333033,CN=Citizen CA,C=BE21267647932559255678179375349212923798ddcwZeM/LkMfMyoOyekc1gP9AWo=CN=Belgium Root CA2,C=BE4881694401549605148318437027298508885UcygcQr3cz00rNwZRQmfQ1x/xZ8=CN=Belgium Root CA2,C=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`;

const X_IT_ICB_6 = `2016-04-22T14:23:00Z24o1xkhJejCjOcx00GUUSXZZx4hJK8lHk0+6jlU09Oo=CN=InfoCert Firma Qualificata 2,2.5.4.5=#130b3037393435323131303036,OU=Certificatore Accreditato,O=INFOCERT SPA,C=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AQAB2016-04-22T14:23:18Z24o1xkhJejCjOcx00GUUSXZZx4hJK8lHk0+6jlU09Oo=CN=InfoCert Firma Qualificata 2,2.5.4.5=#130b3037393435323131303036,OU=Certificatore Accreditato,O=INFOCERT SPA,C=IT95008`;

context("Reading XAdES", () => {

    it("X_AT_SIT_1", async () => {
github PeculiarVentures / xmldsigjs / test / config.js View on Github external
console.warn("Runing: NodeJS");

var fs = require("fs");
var assert = require("assert");
var select = require("xpath.js");
require("babel-polyfill");
var DOMParser = require("xmldom-alpha").DOMParser;
var XMLSerializer = require("xmldom-alpha").XMLSerializer;
var XmlCore = require("xml-core");
xmldsig = require("../");

var { Crypto } = require("@peculiar/webcrypto");
xmldsig.Application.setEngine("NodeJS", new Crypto());
console.log("WebCrypto:", xmldsig.Application.crypto.name);

var readXml = function (path, cb) {
    fs.readFile(path, function (e, buf) {
        if (e)
            assert.equal(false, true, "Error on XML reading " + path);
        else {
            var doc = xmldsig.Parse(buf.toString());
            cb(doc);
        }
    })
}

module.exports = {
    select: select,
    xmldsig: xmldsig,
github PeculiarVentures / xadesjs / test / signed_xml / signing.ts View on Github external
before((done) => {
        const crypto = new Crypto();
        XAdES.Application.setEngine("NodeJS", crypto);

        Promise.resolve()
            .then(() =>
                crypto.subtle.generateKey(alg, true, ["sign", "verify"]),
            )
            .then((k) => {
                keys = k as CryptoKeyPair;
            })
            .then(done, done);
    });
github PeculiarVentures / xmldsigjs / test / config.js View on Github external
else {
            var doc = xmldsig.Parse(buf.toString());
            cb(doc);
        }
    })
}

module.exports = {
    select: select,
    xmldsig: xmldsig,
    DOMParser: DOMParser,
    XMLSerializer: XMLSerializer,
    readXml: readXml,
    assert: assert,
    XmlCore: XmlCore,
    crypto: new Crypto(),
}
github PeculiarVentures / fortify / src / main / crypto.ts View on Github external
import { Crypto } from "@peculiar/webcrypto";
export const crypto = new Crypto();
(global as any).crypto = crypto;
github kevlened / isomorphic-webcrypto / src / index.js View on Github external
const { Crypto } = require('@peculiar/webcrypto')
module.exports = new Crypto()

@peculiar/webcrypto

A WebCrypto Polyfill for NodeJS

MIT
Latest version published 21 days ago

Package Health Score

83 / 100
Full package analysis

Popular @peculiar/webcrypto functions