encrypt-rsa 1.0.10 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ ### 1.2.0 (2022-02-09)
2
+
3
+ ##### Documentation Changes
4
+
5
+ * set docs ([6f1fa5e3](https://github.com/miladezzat/encrypt-rsa/commit/6f1fa5e38e7d1ef0576a8e49501766f540715477))
6
+
7
+ ### 1.1.0 (2021-07-21)
8
+
9
+ ##### Documentation Changes
10
+
11
+ * ✏️ update docs for creating keys ([cebb2758](https://github.com/miladezzat/encrypt-rsa/commit/cebb2758ac55478d46f0ae6228a10f8f1f78b8c3))
12
+
13
+ ##### New Features
14
+
15
+ * 🎸 add create public and private keys ([74c51131](https://github.com/miladezzat/encrypt-rsa/commit/74c51131a858ad28cdda605b479b6bd21297e730))
16
+
17
+ #### 1.0.12 (2021-07-20)
18
+
19
+ ##### Chores
20
+
21
+ * 🤖 update keywords ([b435e3ba](https://github.com/miladezzat/encrypt-rsa/commit/b435e3ba757a80dd66b95ed8a8a668952b66558e))
22
+
23
+ #### 1.0.11 (2021-07-20)
24
+
25
+ ##### Bug Fixes
26
+
27
+ * 🐛 solve docs ([8a08c44e](https://github.com/miladezzat/encrypt-rsa/commit/8a08c44e767d5dcd242b5a5806602468cb663ec1))
28
+
1
29
  #### 1.0.10 (2021-07-20)
2
30
 
3
31
  ##### Documentation Changes
package/README.md CHANGED
@@ -2,12 +2,13 @@
2
2
  # Encrypt By RSA Algorithm
3
3
 
4
4
  [![npm version](https://badge.fury.io/js/encrypt-rsa.svg)](https://badge.fury.io/js/encrypt-rsa) 
5
+ ![https://img.shields.io/npm/dm/encrypt-rsa.svg](https://img.shields.io/npm/dm/encrypt-rsa.svg)
5
6
 
6
7
  > RSA is a public-key cryptosystem that is widely used for secure data transmission. It is also one of the oldest. The acronym RSA comes from the surnames of Ron Rivest, Adi Shamir and Leonard Adleman, who publicly described the algorithm in 1977. [Wikipedia](https://en.wikipedia.org/wiki/RSA_(cryptosystem))
7
8
 
8
9
  RSA algorithm is asymmetric cryptography algorithm. Asymmetric actually means that it works on two different keys i.e. Public Key and Private Key. As the name describes that the Public Key is given to everyone and Private key is kept private.
9
10
 
10
- ### For more explanation about RSA Algorithm visit [https://milad-ezzat.vercel.app/rsa-encryption-algorithm](https://milad-ezzat.vercel.app/rsa-encryption-algorithm)
11
+ ### For more explanation about RSA Algorithm visit [https://milad-ezzat.vercel.app/posts/rsa-encryption-algorithm](https://milad-ezzat.vercel.app/posts/rsa-encryption-algorithm)
11
12
 
12
13
  1. [Installation](#installation)
13
14
  2. [Usage](#usage)
@@ -32,8 +33,19 @@ import NodeRSA from 'encrypt-rsa';
32
33
 
33
34
  const NodeRSA = require('encrypt-rsa').default;
34
35
 
36
+ const fs = require('fs'); // Or import * as fs from 'fs';
37
+
35
38
  const nodeRSA = new NodeRSA();
36
39
 
40
+ // create public and private keys
41
+
42
+ const { privateKey, publicKey } = nodeRSA.createPrivateAndPublicKeys()
43
+
44
+ // to save your keys
45
+ fs.writeFileSync('./private-key', privateKey);
46
+ fs.writeFileSync('./public-key', publicKey);
47
+
48
+
37
49
  // you must have 'public-key' file the key you want to encrypt by it
38
50
 
39
51
  const encryptedText = nodeRSA.encryptStringWithRsaPublicKey({
@@ -58,4 +70,5 @@ console.log({ decryptedText });
58
70
  // result: { decryptedText: 'hello' }
59
71
 
60
72
  ```
61
- for more information about RSA [https://simple.wikipedia.org/wiki/RSA_algorithm](https://simple.wikipedia.org/wiki/RSA_algorithm)
73
+ for more information about RSA:
74
+ [https://simple.wikipedia.org/wiki/RSA_algorithm](https://simple.wikipedia.org/wiki/RSA_algorithm)
package/build/index.d.ts CHANGED
@@ -1,16 +1,14 @@
1
- declare type parameters = {
2
- text: string;
3
- keyPath: string;
4
- };
1
+ import { parametersOfEncryptAndDecrypt, returnCreateKeys } from './utils/types';
5
2
  declare class NodeRSA {
6
3
  private publicKeyPath;
7
4
  private privateKeyPath;
5
+ private modulusLength;
8
6
  /**
9
7
  *
10
8
  * @param publicKeyPath this should be absolute path
11
9
  * @param privateKeyPath this should be absolute path
12
10
  */
13
- constructor(publicKeyPath?: string, privateKeyPath?: string);
11
+ constructor(publicKeyPath?: string, privateKeyPath?: string, modulusLength?: number);
14
12
  /**
15
13
  *
16
14
  * @param {Object} args
@@ -19,7 +17,7 @@ declare class NodeRSA {
19
17
  *
20
18
  * @returns {String}
21
19
  */
22
- encryptStringWithRsaPublicKey(args: parameters): string;
20
+ encryptStringWithRsaPublicKey(args: parametersOfEncryptAndDecrypt): string;
23
21
  /**
24
22
  *
25
23
  * @param {Object} args
@@ -28,6 +26,7 @@ declare class NodeRSA {
28
26
  *
29
27
  * @returns {String}
30
28
  */
31
- decryptStringWithRsaPrivateKey(args: parameters): string;
29
+ decryptStringWithRsaPrivateKey(args: parametersOfEncryptAndDecrypt): string;
30
+ createPrivateAndPublicKeys(modulusLength?: number): returnCreateKeys;
32
31
  }
33
32
  export default NodeRSA;
package/build/index.js CHANGED
@@ -3,17 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var crypto_1 = require("crypto");
4
4
  var fs_1 = require("fs");
5
5
  var path_1 = require("path");
6
+ var generateKeyPairSync = require('crypto').generateKeyPairSync;
6
7
  var NodeRSA = /** @class */ (function () {
7
8
  /**
8
9
  *
9
10
  * @param publicKeyPath this should be absolute path
10
11
  * @param privateKeyPath this should be absolute path
11
12
  */
12
- function NodeRSA(publicKeyPath, privateKeyPath) {
13
+ function NodeRSA(publicKeyPath, privateKeyPath, modulusLength) {
13
14
  if (publicKeyPath === void 0) { publicKeyPath = ''; }
14
15
  if (privateKeyPath === void 0) { privateKeyPath = ''; }
15
16
  this.publicKeyPath = publicKeyPath;
16
17
  this.privateKeyPath = privateKeyPath;
18
+ this.modulusLength = modulusLength || 2048;
17
19
  }
18
20
  /**
19
21
  *
@@ -47,6 +49,21 @@ var NodeRSA = /** @class */ (function () {
47
49
  var decrypted = crypto_1.privateDecrypt(privateKey, buffer);
48
50
  return decrypted.toString('utf8');
49
51
  };
52
+ NodeRSA.prototype.createPrivateAndPublicKeys = function (modulusLength) {
53
+ if (modulusLength === void 0) { modulusLength = this.modulusLength; }
54
+ var _a = generateKeyPairSync('rsa', {
55
+ modulusLength: modulusLength,
56
+ publicKeyEncoding: {
57
+ type: 'spki',
58
+ format: 'pem',
59
+ },
60
+ privateKeyEncoding: {
61
+ type: 'pkcs8',
62
+ format: 'pem',
63
+ },
64
+ }), privateKey = _a.privateKey, publicKey = _a.publicKey;
65
+ return { privateKey: privateKey, publicKey: publicKey };
66
+ };
50
67
  return NodeRSA;
51
68
  }());
52
69
  exports.default = NodeRSA;
@@ -0,0 +1,8 @@
1
+ export declare type returnCreateKeys = {
2
+ privateKey: string;
3
+ publicKey: string;
4
+ };
5
+ export declare type parametersOfEncryptAndDecrypt = {
6
+ text: string;
7
+ keyPath: string;
8
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "encrypt-rsa",
3
- "version": "1.0.10",
3
+ "version": "1.2.0",
4
4
  "description": "this is a little module use to encrypt and decrypt strings with RSA keys (public and private keys)",
5
5
  "main": "./build/index.js",
6
6
  "module": "./build/index.js",
@@ -14,7 +14,8 @@
14
14
  "depcheck": "./node_modules/.bin/depcheck",
15
15
  "prepare": "husky install",
16
16
  "build": "tsc",
17
- "git-cz": "./node_modules/.bin/git-cz",
17
+ "commit": "./node_modules/.bin/git-cz",
18
+ "docs:serve": "docsify serve docs",
18
19
  "_postinstall": "husky install",
19
20
  "prepublishOnly": "pinst --disable",
20
21
  "postpublish": "pinst --enable",
@@ -32,6 +33,7 @@
32
33
  "@typescript-eslint/parser": "^4.28.3",
33
34
  "chai": "^4.3.4",
34
35
  "commitizen": "^4.2.4",
36
+ "docsify-cli": "^4.4.3",
35
37
  "cz-conventional-changelog": "^3.3.0",
36
38
  "depcheck": "^1.4.2",
37
39
  "eslint": "^7.31.0",
@@ -55,7 +57,11 @@
55
57
  "node-rsa",
56
58
  "encrypt",
57
59
  "encrypt by public key",
58
- "decrypt by private key"
60
+ "decrypt by private key",
61
+ "rsa encryption",
62
+ "node-rsa typescript",
63
+ "Crypto-js RSA",
64
+ "Javascript RSA encryption"
59
65
  ],
60
66
  "author": "Milad E. Fahmy <miladezzat.f@gmail.com> (https://milad-ezzat.vercel.app)",
61
67
  "config": {
@@ -74,5 +80,5 @@
74
80
  "bugs": {
75
81
  "url": "https://github.com/miladezzat/encrypt-rsa/issues"
76
82
  },
77
- "homepage": "https://milad-ezzat.vercel.app"
83
+ "homepage": "https://miladezzat.github.io/encrypt-rsa/"
78
84
  }