Skip to content

Commit ee47613

Browse files
authored
Merge pull request BIDMCDigitalPsychiatry#263 from BIDMCDigitalPsychiatry/remove-encryption
RSA encryption removed
2 parents 0a46c27 + fed0baa commit ee47613

4 files changed

Lines changed: 7 additions & 63 deletions

File tree

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,8 @@
7171
"coverage": "jest --coverage",
7272
"dev": "docker compose up -d && nodemon --exec ts-node ./src/index.ts --watch src",
7373
"deploy": "rimraf bin && pkg . -t node10-alpine-x64,node10-linux-x64,node10-macos-x64 --out-path bin/",
74-
"start-sw": "dotenv node build/index.js",
75-
"start": "npm run build && npm run keys && npm run start-sw",
76-
"keys": "node build/utils/generateKeys.js",
74+
"start-sw": "dotenv node build/src/index.js",
75+
"start": "npm run build && npm run start-sw",
7776
"test": "jest --watch",
7877
"lint": "eslint src/**/*.ts",
7978
"prepare": "husky install"

src/repository/mongo/CredentialRepository.ts

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { CredentialInterface } from "../interface/RepositoryInterface"
44
import { MongoClientDB } from "../Bootstrap"
55
import { ObjectId } from "mongodb"
66
import { jwtVerify, SignJWT } from "jose"
7-
const path = require('path');
87

98
const { isLocked, recordFailedAttempts, clearAttempts } = require("../../utils/accountLockout")
109

@@ -94,34 +93,14 @@ export class CredentialRepository implements CredentialInterface {
9493
const JWT_SECRET = process.env.SECRET_KEY as string
9594
const secret_key = new TextEncoder().encode(JWT_SECRET)
9695

97-
const { privateDecrypt, constants } = require("crypto")
98-
const fs = require("fs")
99-
100-
const privateKeyPath = path.resolve(process.cwd(), 'private_key.pem');
101-
const privateKey = fs.readFileSync(privateKeyPath, 'utf8');
102-
const encryptedPassword = secretKey
103-
let decrypted
104-
try {
105-
decrypted = privateDecrypt(
106-
{
107-
key: privateKey,
108-
padding: constants.RSA_PKCS1_OAEP_PADDING,
109-
oaepHash: "sha256",
110-
},
111-
Buffer.from(encryptedPassword, "base64")
112-
).toString("utf8")
113-
} catch (error) {
114-
console.error("Decryption error:", error)
115-
}
116-
117-
if (isLocked(decrypted)) {
96+
if (isLocked(secretKey)) {
11897
throw new Error("403.Account has been logged out, please try again later")
11998
}
12099
const res = await MongoClientDB.collection("credential").findOne({ _deleted: false, access_key: accessKey })
121100

122101
if (res?.length !== 0 && res !== null) {
123102
const secretKeyDecrypted = Decrypt(res?.secret_key, "AES256")
124-
if (decrypted === secretKeyDecrypted) {
103+
if (secretKey === secretKeyDecrypted) {
125104
// Generating jwt access token
126105
try {
127106
res.access_token = await new SignJWT({ user_id: res._id, origin: res.origin })
@@ -137,20 +116,18 @@ export class CredentialRepository implements CredentialInterface {
137116
.sign(secret_key)
138117

139118
const { payload, protectedHeader } = await jwtVerify(res.refresh_token, secret_key)
140-
clearAttempts(decrypted)
119+
clearAttempts(secretKey)
141120
} catch (err) {
142121
console.log(err)
143122
}
144-
145123
res.typeId = res?.id
146-
147124
return res as any
148125
} else {
149-
recordFailedAttempts(decrypted)
126+
recordFailedAttempts(secretKey)
150127
throw new Error("403.no-such-credentials")
151128
}
152129
} else {
153-
recordFailedAttempts(decrypted)
130+
recordFailedAttempts(secretKey)
154131
throw new Error("403.no-such-credentials")
155132
}
156133
}

src/service/CredentialService.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ export class CredentialService {
7878
}
7979
}
8080

81-
public static async publicKey() {
82-
const fs = require("fs")
83-
const publicKey = fs.readFileSync("./public_key.pem", "utf8")
84-
return publicKey
85-
}
8681
}
8782

8883
CredentialService.Router.get(
@@ -210,13 +205,3 @@ CredentialService.Router.post(`/renewToken`, authenticateToken, async (req: Requ
210205
}
211206
})
212207

213-
CredentialService.Router.get("/publicKey", async (req: Request, res: Response) => {
214-
res.header(ApiResponseHeaders)
215-
try {
216-
const publicKey = await CredentialService.publicKey()
217-
res.json(publicKey)
218-
} catch (e: any) {
219-
if (e.message === "401.missing-credentials") res.set("WWW-Authenticate", `Basic realm="LAMP" charset="UTF-8"`)
220-
res.status(parseInt(e.message.split(".")[0]) || 500).json({ error: e.message })
221-
}
222-
})

src/utils/generateKeys.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)