New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

credify-crypto

Package Overview
Dependencies
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

credify-crypto - npm Package Compare versions

Comparing version 0.4.0 to 0.5.0

3

dist/index.d.ts
import Encryption from "./encryption";
import Signing from "./signing";
import * as jwt from "./jwt";
import * as interfaces from "./interfaces";
export { Encryption, Signing, interfaces };
export { Encryption, Signing, jwt, interfaces };

@@ -330,5 +330,9 @@ import { Crypto } from '@peculiar/webcrypto';

Signing.prototype.signStringToBase64 = function (message) {
if (!this._privateKey)
throw new Error("Private key is not set yet.");
return pki.ed25519.sign({ message: message, encoding: "binary", privateKey: this._privateKey }).toString("base64");
};
Signing.prototype.verifyString = function (message, signature) {
if (!this._publicKey)
throw new Error("Public key is not set yet.");
return pki.ed25519.verify({

@@ -383,2 +387,61 @@ message: message,

var decodeTokenComponent = function (base64Url) {
var base64 = base64Url
.replace(/\-/g, "+")
.replace(/_/g, "/");
return JSON.parse(Buffer.from(base64, 'base64').toString('binary'));
};
var base64ToBase64UrlEncoded = function (base64) {
return base64
.replace(/=/g, "")
.replace(/\+/g, "-")
.replace(/\//g, "_");
};
var encodeTokenComponent = function (json) {
var base64Encoded = Buffer.from(JSON.stringify(json)).toString("base64");
return base64ToBase64UrlEncoded(base64Encoded);
};
var composeMessage = function (header, payload) {
return encodeTokenComponent(header) + "." + encodeTokenComponent(payload);
};
var parseJwt = function (token) {
var _a = token.split('.'), headerEncoded = _a[0], payloadEncoded = _a[1], signature = _a[2];
var _b = [headerEncoded, payloadEncoded].map(decodeTokenComponent), header = _b[0], payload = _b[1];
// @ts-ignore
if (!header["alg"] || !header["typ"]) {
throw new Error("Header format is not correct.");
}
// @ts-ignore
if (!payload["exp"] || !payload["iat"] || !payload["signing_key"]) {
throw new Error("Payload format is not correct.");
}
// @ts-ignore
return { header: header, payload: payload, signature: signature };
};
var generateJwt = function (signing) {
var timestamp = Number((new Date().getTime() / 1000).toFixed(0));
var header = {
alg: "Ed25519",
typ: "JWT",
};
var payload = {
exp: timestamp + 60 * 60,
iat: timestamp,
signing_key: signing.exportPublicKey(),
};
var signature = base64ToBase64UrlEncoded(signing.signStringToBase64(composeMessage(header, payload)));
return encodeTokenComponent(header) + "." + encodeTokenComponent(payload) + "." + signature;
};
var verifyJwt = function (jwt, signing) {
var message = composeMessage(jwt.header, jwt.payload);
return signing.verifyString(message, jwt.signature);
};
var jwt = /*#__PURE__*/Object.freeze({
__proto__: null,
parseJwt: parseJwt,
generateJwt: generateJwt,
verifyJwt: verifyJwt
});
var interfaces = /*#__PURE__*/Object.freeze({

@@ -388,2 +451,2 @@ __proto__: null

export { Encryption, Signing, interfaces };
export { Encryption, Signing, interfaces, jwt };

@@ -334,5 +334,9 @@ 'use strict';

Signing.prototype.signStringToBase64 = function (message) {
if (!this._privateKey)
throw new Error("Private key is not set yet.");
return nodeForge.pki.ed25519.sign({ message: message, encoding: "binary", privateKey: this._privateKey }).toString("base64");
};
Signing.prototype.verifyString = function (message, signature) {
if (!this._publicKey)
throw new Error("Public key is not set yet.");
return nodeForge.pki.ed25519.verify({

@@ -387,2 +391,61 @@ message: message,

var decodeTokenComponent = function (base64Url) {
var base64 = base64Url
.replace(/\-/g, "+")
.replace(/_/g, "/");
return JSON.parse(Buffer.from(base64, 'base64').toString('binary'));
};
var base64ToBase64UrlEncoded = function (base64) {
return base64
.replace(/=/g, "")
.replace(/\+/g, "-")
.replace(/\//g, "_");
};
var encodeTokenComponent = function (json) {
var base64Encoded = Buffer.from(JSON.stringify(json)).toString("base64");
return base64ToBase64UrlEncoded(base64Encoded);
};
var composeMessage = function (header, payload) {
return encodeTokenComponent(header) + "." + encodeTokenComponent(payload);
};
var parseJwt = function (token) {
var _a = token.split('.'), headerEncoded = _a[0], payloadEncoded = _a[1], signature = _a[2];
var _b = [headerEncoded, payloadEncoded].map(decodeTokenComponent), header = _b[0], payload = _b[1];
// @ts-ignore
if (!header["alg"] || !header["typ"]) {
throw new Error("Header format is not correct.");
}
// @ts-ignore
if (!payload["exp"] || !payload["iat"] || !payload["signing_key"]) {
throw new Error("Payload format is not correct.");
}
// @ts-ignore
return { header: header, payload: payload, signature: signature };
};
var generateJwt = function (signing) {
var timestamp = Number((new Date().getTime() / 1000).toFixed(0));
var header = {
alg: "Ed25519",
typ: "JWT",
};
var payload = {
exp: timestamp + 60 * 60,
iat: timestamp,
signing_key: signing.exportPublicKey(),
};
var signature = base64ToBase64UrlEncoded(signing.signStringToBase64(composeMessage(header, payload)));
return encodeTokenComponent(header) + "." + encodeTokenComponent(payload) + "." + signature;
};
var verifyJwt = function (jwt, signing) {
var message = composeMessage(jwt.header, jwt.payload);
return signing.verifyString(message, jwt.signature);
};
var jwt = /*#__PURE__*/Object.freeze({
__proto__: null,
parseJwt: parseJwt,
generateJwt: generateJwt,
verifyJwt: verifyJwt
});
var interfaces = /*#__PURE__*/Object.freeze({

@@ -395,1 +458,2 @@ __proto__: null

exports.interfaces = interfaces;
exports.jwt = jwt;
import { JWTType } from "./interfaces";
import Signing from "./signing";
export declare const parseJwt: (token: string) => JWTType;
export declare const signJwt: (signing: Signing) => string;
export declare const generateJwt: (signing: Signing) => string;
export declare const verifyJwt: (jwt: JWTType, signing: Signing) => boolean;
{
"name": "credify-crypto",
"version": "0.4.0",
"version": "0.5.0",
"description": "Credify cryptographic related helpers in JavaScript",

@@ -5,0 +5,0 @@ "license": "MIT",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc