Skip to content

Commit 25025cb

Browse files
authored
fix: overweight dependencies in PKCE implementation (#5658)
1 parent 75a0e5d commit 25025cb

File tree

3 files changed

+43
-23
lines changed

3 files changed

+43
-23
lines changed

package-lock.json

Lines changed: 30 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
"lodash": "^4.17.15",
6666
"memoizee": "^0.4.12",
6767
"prop-types": "^15.7.2",
68+
"randombytes": "^2.1.0",
6869
"react": "^15.6.2",
6970
"react-debounce-input": "^3.2.0",
7071
"react-dom": "^15.6.2",
@@ -78,6 +79,7 @@
7879
"remarkable": "^1.7.4",
7980
"reselect": "^2.5.4",
8081
"serialize-error": "^2.1.0",
82+
"sha.js": "^2.4.11",
8183
"swagger-client": "^3.9.4",
8284
"url-parse": "^1.4.7",
8385
"xml-but-prettier": "^1.0.1",

src/core/utils.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ import { memoizedSampleFromSchema, memoizedCreateXMLExample } from "core/plugins
2222
import win from "./window"
2323
import cssEscape from "css.escape"
2424
import getParameterSchema from "../helpers/get-parameter-schema"
25-
import crypto from "crypto"
25+
import randomBytes from "randombytes"
26+
import shaJs from "sha.js"
27+
2628

2729
const DEFAULT_RESPONSE_KEY = "default"
2830

@@ -868,21 +870,20 @@ export function paramToValue(param, paramValues) {
868870

869871
// adapted from https://auth0.com/docs/flows/guides/auth-code-pkce/includes/create-code-verifier
870872
export function generateCodeVerifier() {
871-
return toBase64UrlEncoded(
872-
crypto.randomBytes(32)
873-
.toString("base64")
873+
return b64toB64UrlEncoded(
874+
randomBytes(32).toString("base64")
874875
)
875876
}
876877

877878
export function createCodeChallenge(codeVerifier) {
878-
return toBase64UrlEncoded(
879-
crypto.createHash("sha256")
880-
.update(codeVerifier, "ascii")
881-
.digest("base64")
882-
)
879+
return b64toB64UrlEncoded(
880+
shaJs("sha256")
881+
.update(codeVerifier)
882+
.digest("base64")
883+
)
883884
}
884885

885-
function toBase64UrlEncoded(str) {
886+
function b64toB64UrlEncoded(str) {
886887
return str
887888
.replace(/\+/g, "-")
888889
.replace(/\//g, "_")

0 commit comments

Comments
 (0)