@edirect/encrypt-modules 10.0.1 → 11.0.26
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/README.md +9 -0
- package/dist/README.md +9 -0
- package/dist/package.json +54 -0
- package/dist/{aes-encrypt → src/aes-encrypt}/aes-encrypt.interface.d.ts +6 -7
- package/dist/src/aes-encrypt/aes-encrypt.interface.d.ts.map +1 -0
- package/dist/{aes-encrypt → src/aes-encrypt}/aes-encrypt.interface.js +0 -1
- package/dist/src/aes-encrypt/aes-encrypt.module.d.ts +3 -0
- package/dist/src/aes-encrypt/aes-encrypt.module.d.ts.map +1 -0
- package/dist/src/aes-encrypt/aes-encrypt.module.js +15 -0
- package/dist/{aes-encrypt → src/aes-encrypt}/aes-encrypt.service.d.ts +2 -2
- package/dist/src/aes-encrypt/aes-encrypt.service.d.ts.map +1 -0
- package/dist/{aes-encrypt → src/aes-encrypt}/aes-encrypt.service.js +21 -21
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.interface.d.ts +5 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.interface.d.ts.map +1 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.interface.js +2 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.module.d.ts +3 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.module.d.ts.map +1 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.module.js +15 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.service.d.ts +6 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.service.d.ts.map +1 -0
- package/dist/src/bin-pgp-encrypt/bin-pgp-encrypt.service.js +63 -0
- package/dist/{index.d.ts → src/index.d.ts} +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +5 -2
- package/dist/{pgp-encrypt → src/pgp-encrypt}/pgp-encrypt.interface.d.ts +1 -0
- package/dist/src/pgp-encrypt/pgp-encrypt.interface.d.ts.map +1 -0
- package/dist/{pgp-encrypt → src/pgp-encrypt}/pgp-encrypt.interface.js +0 -1
- package/dist/src/pgp-encrypt/pgp-encrypt.module.d.ts +3 -0
- package/dist/src/pgp-encrypt/pgp-encrypt.module.d.ts.map +1 -0
- package/dist/src/pgp-encrypt/pgp-encrypt.module.js +15 -0
- package/dist/{pgp-encrypt → src/pgp-encrypt}/pgp-encrypt.service.d.ts +1 -0
- package/dist/src/pgp-encrypt/pgp-encrypt.service.d.ts.map +1 -0
- package/dist/{pgp-encrypt → src/pgp-encrypt}/pgp-encrypt.service.js +7 -12
- package/dist/{rsa-encrypt → src/rsa-encrypt}/rsa-encrypt.interface.d.ts +1 -1
- package/dist/src/rsa-encrypt/rsa-encrypt.interface.d.ts.map +1 -0
- package/dist/{rsa-encrypt → src/rsa-encrypt}/rsa-encrypt.interface.js +0 -1
- package/dist/src/rsa-encrypt/rsa-encrypt.module.d.ts +3 -0
- package/dist/src/rsa-encrypt/rsa-encrypt.module.d.ts.map +1 -0
- package/dist/src/rsa-encrypt/rsa-encrypt.module.js +15 -0
- package/dist/{rsa-encrypt → src/rsa-encrypt}/rsa-encrypt.service.d.ts +2 -2
- package/dist/src/rsa-encrypt/rsa-encrypt.service.d.ts.map +1 -0
- package/dist/src/rsa-encrypt/rsa-encrypt.service.js +22 -0
- package/dist/{zip-encrypt → src/zip-encrypt}/zipencrypt.interface.d.ts +1 -0
- package/dist/src/zip-encrypt/zipencrypt.interface.d.ts.map +1 -0
- package/dist/{zip-encrypt → src/zip-encrypt}/zipencrypt.interface.js +0 -1
- package/dist/src/zip-encrypt/zipencrypt.module.d.ts +3 -0
- package/dist/src/zip-encrypt/zipencrypt.module.d.ts.map +1 -0
- package/dist/src/zip-encrypt/zipencrypt.module.js +15 -0
- package/dist/{zip-encrypt → src/zip-encrypt}/zipencrypt.service.d.ts +1 -1
- package/dist/src/zip-encrypt/zipencrypt.service.d.ts.map +1 -0
- package/dist/{zip-encrypt → src/zip-encrypt}/zipencrypt.service.js +10 -12
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +44 -20
- package/.eslintrc.js +0 -24
- package/.prettierrc +0 -4
- package/dist/aes-encrypt/aes-encrypt.interface.js.map +0 -1
- package/dist/aes-encrypt/aes-encrypt.module.d.ts +0 -2
- package/dist/aes-encrypt/aes-encrypt.module.js +0 -21
- package/dist/aes-encrypt/aes-encrypt.module.js.map +0 -1
- package/dist/aes-encrypt/aes-encrypt.service.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/pgp-encrypt/pgp-encrypt.interface.js.map +0 -1
- package/dist/pgp-encrypt/pgp-encrypt.module.d.ts +0 -2
- package/dist/pgp-encrypt/pgp-encrypt.module.js +0 -21
- package/dist/pgp-encrypt/pgp-encrypt.module.js.map +0 -1
- package/dist/pgp-encrypt/pgp-encrypt.service.js.map +0 -1
- package/dist/rsa-encrypt/rsa-encrypt.interface.js.map +0 -1
- package/dist/rsa-encrypt/rsa-encrypt.module.d.ts +0 -2
- package/dist/rsa-encrypt/rsa-encrypt.module.js +0 -21
- package/dist/rsa-encrypt/rsa-encrypt.module.js.map +0 -1
- package/dist/rsa-encrypt/rsa-encrypt.service.js +0 -28
- package/dist/rsa-encrypt/rsa-encrypt.service.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/zip-encrypt/zipencrypt.interface.js.map +0 -1
- package/dist/zip-encrypt/zipencrypt.module.d.ts +0 -2
- package/dist/zip-encrypt/zipencrypt.module.js +0 -21
- package/dist/zip-encrypt/zipencrypt.module.js.map +0 -1
- package/dist/zip-encrypt/zipencrypt.service.js.map +0 -1
- package/nest-cli.json +0 -4
- package/src/aes-encrypt/aes-encrypt.interface.ts +0 -34
- package/src/aes-encrypt/aes-encrypt.module.ts +0 -8
- package/src/aes-encrypt/aes-encrypt.service.ts +0 -65
- package/src/index.ts +0 -8
- package/src/pgp-encrypt/pgp-encrypt.interface.ts +0 -8
- package/src/pgp-encrypt/pgp-encrypt.module.ts +0 -8
- package/src/pgp-encrypt/pgp-encrypt.service.ts +0 -74
- package/src/rsa-encrypt/rsa-encrypt.interface.ts +0 -15
- package/src/rsa-encrypt/rsa-encrypt.module.ts +0 -8
- package/src/rsa-encrypt/rsa-encrypt.service.ts +0 -30
- package/src/zip-encrypt/zipencrypt.interface.ts +0 -12
- package/src/zip-encrypt/zipencrypt.module.ts +0 -8
- package/src/zip-encrypt/zipencrypt.service.ts +0 -29
- package/tsconfig.build.json +0 -4
- package/tsconfig.json +0 -21
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import {
|
|
3
|
-
createCipheriv,
|
|
4
|
-
createDecipheriv,
|
|
5
|
-
Cipher,
|
|
6
|
-
Decipher,
|
|
7
|
-
CipherKey,
|
|
8
|
-
BinaryLike,
|
|
9
|
-
} from 'crypto';
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
AesEncryptInterface, IaesDecryptOptionalParameters, IaesEncryptOptionalParameters,
|
|
13
|
-
} from './aes-encrypt.interface';
|
|
14
|
-
|
|
15
|
-
@Injectable()
|
|
16
|
-
export class AesEncryptService implements AesEncryptInterface {
|
|
17
|
-
|
|
18
|
-
public encrypt(message: string, passphrase: CipherKey, optionalParameters: IaesEncryptOptionalParameters = {}): string {
|
|
19
|
-
optionalParameters = {
|
|
20
|
-
...{
|
|
21
|
-
iv: Buffer.alloc(16).fill(0),
|
|
22
|
-
encryptionMethod: 'aes-256-cbc',
|
|
23
|
-
inputEncoding: 'utf8',
|
|
24
|
-
outputEncoding: 'hex',
|
|
25
|
-
}, ...optionalParameters,
|
|
26
|
-
};
|
|
27
|
-
const cipher: Cipher = createCipheriv(
|
|
28
|
-
optionalParameters.encryptionMethod,
|
|
29
|
-
passphrase,
|
|
30
|
-
optionalParameters.iv,
|
|
31
|
-
optionalParameters.options,
|
|
32
|
-
);
|
|
33
|
-
let result: string = cipher.update(
|
|
34
|
-
message,
|
|
35
|
-
optionalParameters.inputEncoding,
|
|
36
|
-
optionalParameters.outputEncoding,
|
|
37
|
-
);
|
|
38
|
-
result += cipher.final(optionalParameters.outputEncoding);
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public decrypt(encryptedMessage: string, passphrase: BinaryLike, optionalParameters: IaesDecryptOptionalParameters = {}): string {
|
|
43
|
-
optionalParameters = {
|
|
44
|
-
...{
|
|
45
|
-
encryptionMethod: 'aes-256-cbc',
|
|
46
|
-
iv: Buffer.alloc(16).fill(0),
|
|
47
|
-
inputEncoding: 'hex',
|
|
48
|
-
outputEncoding: 'utf8',
|
|
49
|
-
}, ...optionalParameters,
|
|
50
|
-
};
|
|
51
|
-
const decipher: Decipher = createDecipheriv(
|
|
52
|
-
optionalParameters.encryptionMethod,
|
|
53
|
-
passphrase,
|
|
54
|
-
optionalParameters.iv,
|
|
55
|
-
optionalParameters.options);
|
|
56
|
-
let result: string = decipher.update(
|
|
57
|
-
encryptedMessage,
|
|
58
|
-
optionalParameters.inputEncoding,
|
|
59
|
-
optionalParameters.outputEncoding,
|
|
60
|
-
);
|
|
61
|
-
result += decipher.final(optionalParameters.outputEncoding);
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { AesEncryptModule } from './aes-encrypt/aes-encrypt.module';
|
|
2
|
-
export { AesEncryptService } from './aes-encrypt/aes-encrypt.service';
|
|
3
|
-
export { RsaEncryptModule } from './rsa-encrypt/rsa-encrypt.module';
|
|
4
|
-
export { RsaEncryptService } from './rsa-encrypt/rsa-encrypt.service';
|
|
5
|
-
export { PgpEncryptModule } from './pgp-encrypt/pgp-encrypt.module';
|
|
6
|
-
export { PgpEncryptService } from './pgp-encrypt/pgp-encrypt.service';
|
|
7
|
-
export { ZipEncryptModule } from './zip-encrypt/zipencrypt.module';
|
|
8
|
-
export { ZipEncryptService } from './zip-encrypt/zipencrypt.service';
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import * as openpgp from 'openpgp';
|
|
3
|
-
import { IPgpEncryptModuleInterface } from './pgp-encrypt.interface';
|
|
4
|
-
|
|
5
|
-
@Injectable()
|
|
6
|
-
export class PgpEncryptService implements IPgpEncryptModuleInterface {
|
|
7
|
-
public async encrypt(pgpKey: any, dataToEncrypt: any): Promise<string> {
|
|
8
|
-
try {
|
|
9
|
-
const publicKey = await openpgp.readKey({
|
|
10
|
-
armoredKey: pgpKey,
|
|
11
|
-
});
|
|
12
|
-
const encrypted = await openpgp.encrypt({
|
|
13
|
-
message: await openpgp.createMessage({ text: dataToEncrypt }),
|
|
14
|
-
encryptionKeys: publicKey,
|
|
15
|
-
format: 'armored',
|
|
16
|
-
});
|
|
17
|
-
return encrypted.toString();
|
|
18
|
-
} catch (error) {
|
|
19
|
-
throw new Error(`File encryption error: \n ${error}`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public async decrypt(
|
|
24
|
-
pgpKey: any,
|
|
25
|
-
encryptedData: any,
|
|
26
|
-
passphrase?: string,
|
|
27
|
-
): Promise<string> {
|
|
28
|
-
try {
|
|
29
|
-
const openpgpPrivatekey = await openpgp.readPrivateKey({
|
|
30
|
-
armoredKey: pgpKey,
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const decryptKeyOptions: {
|
|
34
|
-
privateKey: openpgp.PrivateKey;
|
|
35
|
-
passphrase?: openpgp.MaybeArray<string>;
|
|
36
|
-
config?: openpgp.PartialConfig;
|
|
37
|
-
} = {
|
|
38
|
-
privateKey: openpgpPrivatekey,
|
|
39
|
-
config: {
|
|
40
|
-
allowInsecureDecryptionWithSigningKeys: true,
|
|
41
|
-
allowUnauthenticatedMessages: true,
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
if (!!passphrase) {
|
|
46
|
-
decryptKeyOptions.passphrase = passphrase;
|
|
47
|
-
}
|
|
48
|
-
const privateKey = await openpgp.decryptKey(decryptKeyOptions);
|
|
49
|
-
|
|
50
|
-
const armoredMessage = (
|
|
51
|
-
await openpgp.createMessage({
|
|
52
|
-
text: encryptedData,
|
|
53
|
-
format: 'utf8',
|
|
54
|
-
})
|
|
55
|
-
).getText();
|
|
56
|
-
const message = await openpgp.readMessage({
|
|
57
|
-
armoredMessage,
|
|
58
|
-
});
|
|
59
|
-
const { data: decryptedData } = await openpgp.decrypt({
|
|
60
|
-
message,
|
|
61
|
-
decryptionKeys: privateKey,
|
|
62
|
-
format: 'utf8',
|
|
63
|
-
config: {
|
|
64
|
-
allowInsecureDecryptionWithSigningKeys: true,
|
|
65
|
-
allowUnauthenticatedMessages: true,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
return decryptedData.toString();
|
|
70
|
-
} catch (error) {
|
|
71
|
-
throw new Error(`File decryption error: \n ${error}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as NodeRSA from 'node-rsa';
|
|
2
|
-
|
|
3
|
-
export interface RsaEncryptInterface {
|
|
4
|
-
encrypt(
|
|
5
|
-
message: NodeRSA.Data,
|
|
6
|
-
key: NodeRSA.KeyBits,
|
|
7
|
-
messageEncoding: NodeRSA.Encoding,
|
|
8
|
-
): string;
|
|
9
|
-
|
|
10
|
-
decrypt(
|
|
11
|
-
message: string | Buffer,
|
|
12
|
-
key: NodeRSA.Key,
|
|
13
|
-
messageEncoding: NodeRSA.Encoding,
|
|
14
|
-
): string;
|
|
15
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import * as NodeRSA from 'node-rsa';
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
RsaEncryptInterface,
|
|
6
|
-
} from './rsa-encrypt.interface';
|
|
7
|
-
|
|
8
|
-
@Injectable()
|
|
9
|
-
export class RsaEncryptService implements RsaEncryptInterface {
|
|
10
|
-
|
|
11
|
-
public encrypt(
|
|
12
|
-
message: NodeRSA.Data,
|
|
13
|
-
key: NodeRSA.KeyBits,
|
|
14
|
-
messageEncoding: NodeRSA.Encoding = 'base64',
|
|
15
|
-
): string {
|
|
16
|
-
const rsa: NodeRSA = new NodeRSA(key);
|
|
17
|
-
const encryptedData: string = rsa.encrypt(message, messageEncoding);
|
|
18
|
-
return encryptedData;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public decrypt(
|
|
22
|
-
message: string | Buffer,
|
|
23
|
-
key: NodeRSA.Key,
|
|
24
|
-
messageEncoding: NodeRSA.Encoding = 'buffer',
|
|
25
|
-
): string {
|
|
26
|
-
const rsa: NodeRSA = new NodeRSA(key);
|
|
27
|
-
const decrypt: string = rsa.decrypt(message, messageEncoding).toString();
|
|
28
|
-
return decrypt;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ArchiverOptions } from 'archiver';
|
|
2
|
-
|
|
3
|
-
export type encryptionMethodType = 'zip20' | 'aes256'
|
|
4
|
-
|
|
5
|
-
export type archiverOptionsZipEncrypted = ArchiverOptions & {
|
|
6
|
-
encryptionMethod: encryptionMethodType;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export interface FileFormat {
|
|
10
|
-
content: any;
|
|
11
|
-
filename: string;
|
|
12
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import { registerFormat, create, Archiver, isRegisteredFormat } from 'archiver';
|
|
3
|
-
import { WritableStreamBuffer } from 'stream-buffers';
|
|
4
|
-
import { archiverOptionsZipEncrypted, encryptionMethodType, FileFormat } from './zipencrypt.interface';
|
|
5
|
-
|
|
6
|
-
@Injectable()
|
|
7
|
-
export class ZipEncryptService {
|
|
8
|
-
|
|
9
|
-
public async encryptFiles(files: FileFormat[], password: string, encryptionMethod: encryptionMethodType = 'zip20'): Promise<Buffer | false> {
|
|
10
|
-
const output: WritableStreamBuffer = new WritableStreamBuffer({
|
|
11
|
-
initialSize: (1000),
|
|
12
|
-
incrementAmount: (1000),
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
if (!isRegisteredFormat('zip-encrypted')) { registerFormat('zip-encrypted', require('archiver-zip-encrypted')); }
|
|
16
|
-
|
|
17
|
-
const archive: Archiver = create('zip-encrypted', { zlib: { level: 8 }, encryptionMethod, password } as archiverOptionsZipEncrypted);
|
|
18
|
-
|
|
19
|
-
archive.pipe(output);
|
|
20
|
-
|
|
21
|
-
files.map((file: FileFormat) => {
|
|
22
|
-
archive.append(file.content, { name: file.filename });
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
await archive.finalize();
|
|
26
|
-
output.end();
|
|
27
|
-
return output.getContents();
|
|
28
|
-
}
|
|
29
|
-
}
|
package/tsconfig.build.json
DELETED
package/tsconfig.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"module": "commonjs",
|
|
4
|
-
"declaration": true,
|
|
5
|
-
"removeComments": true,
|
|
6
|
-
"emitDecoratorMetadata": true,
|
|
7
|
-
"experimentalDecorators": true,
|
|
8
|
-
"allowSyntheticDefaultImports": true,
|
|
9
|
-
"target": "es2017",
|
|
10
|
-
"sourceMap": true,
|
|
11
|
-
"outDir": "./dist",
|
|
12
|
-
"baseUrl": "./",
|
|
13
|
-
"incremental": true,
|
|
14
|
-
"skipLibCheck": true,
|
|
15
|
-
"strictNullChecks": false,
|
|
16
|
-
"noImplicitAny": false,
|
|
17
|
-
"strictBindCallApply": false,
|
|
18
|
-
"forceConsistentCasingInFileNames": false,
|
|
19
|
-
"noFallthroughCasesInSwitch": false
|
|
20
|
-
}
|
|
21
|
-
}
|