generated from cubetiq/ts-project
Task: Completed for cryptojs and tests functions and validate keys
This commit is contained in:
49
src/crypto/core/default.crypto.ts
Normal file
49
src/crypto/core/default.crypto.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import * as crypto from "crypto"
|
||||
import {
|
||||
DEFAULT_AES_ALGORITHM,
|
||||
DEFAULT_BUFFER_TYPE,
|
||||
DEFAULT_ENCODING_TYPE,
|
||||
} from "../../config"
|
||||
import { bufferToString, stringToBuffer } from "../../util"
|
||||
|
||||
const encrypt = (
|
||||
data: string | Buffer,
|
||||
key: string | Buffer,
|
||||
iv?: string | Buffer | null
|
||||
): string => {
|
||||
const cipher = crypto.createCipheriv(
|
||||
DEFAULT_AES_ALGORITHM,
|
||||
stringToBuffer(key),
|
||||
stringToBuffer(iv || key)
|
||||
)
|
||||
const _data = bufferToString(data)
|
||||
let encrypted = cipher.update(
|
||||
_data,
|
||||
DEFAULT_ENCODING_TYPE,
|
||||
DEFAULT_BUFFER_TYPE
|
||||
)
|
||||
encrypted += cipher.final(DEFAULT_BUFFER_TYPE)
|
||||
return encrypted
|
||||
}
|
||||
|
||||
const decrypt = (
|
||||
data: string | Buffer,
|
||||
key: string | Buffer,
|
||||
iv?: string | Buffer | null
|
||||
): string => {
|
||||
const decipher = crypto.createDecipheriv(
|
||||
DEFAULT_AES_ALGORITHM,
|
||||
stringToBuffer(key),
|
||||
stringToBuffer(iv || key)
|
||||
)
|
||||
const _data = bufferToString(data)
|
||||
let decrypted = decipher.update(
|
||||
_data,
|
||||
DEFAULT_BUFFER_TYPE,
|
||||
DEFAULT_ENCODING_TYPE
|
||||
)
|
||||
decrypted += decipher.final(DEFAULT_ENCODING_TYPE)
|
||||
return decrypted
|
||||
}
|
||||
|
||||
export { encrypt, decrypt }
|
||||
28
src/crypto/core/e2e.crypto.ts
Normal file
28
src/crypto/core/e2e.crypto.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import * as crypto from "crypto"
|
||||
|
||||
import { DEFAULT_BUFFER_TYPE, DEFAULT_ENCODING_TYPE } from "../../config"
|
||||
import { stringToBuffer } from "../../util"
|
||||
|
||||
const encrypt = (data: string | Buffer, privateOrPublicKey: string): string => {
|
||||
const buffer = stringToBuffer(data)
|
||||
const encrypted = crypto.publicEncrypt(privateOrPublicKey, buffer)
|
||||
return encrypted.toString(DEFAULT_BUFFER_TYPE)
|
||||
}
|
||||
|
||||
const decrypt = (
|
||||
data: string | Buffer,
|
||||
privateKey: string,
|
||||
passphrase?: string | null
|
||||
): string => {
|
||||
const buffer = stringToBuffer(data)
|
||||
const decrypted = crypto.privateDecrypt(
|
||||
{
|
||||
key: privateKey,
|
||||
passphrase: passphrase || "",
|
||||
},
|
||||
buffer
|
||||
)
|
||||
return decrypted.toString(DEFAULT_ENCODING_TYPE)
|
||||
}
|
||||
|
||||
export { encrypt, decrypt }
|
||||
Reference in New Issue
Block a user