Skip to content

Commit f2942ca

Browse files
committed
feat: support getIterationSizeSrc for argon2 variants
1 parent 8928a11 commit f2942ca

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

python/ql/lib/experimental/cryptography/modules/CryptographyModule.qll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,15 @@ module KDF {
114114
this.getAlgorithm().getKDFName() in ["PBKDF2HMAC", "CONCATKDFHMAC", "HKDF", "SCRYPT", "ARGON2"]
115115
}
116116

117-
override predicate requiresIteration() { this.getAlgorithm().getKDFName() in ["PBKDF2HMAC"] }
117+
override predicate requiresIteration() { this.getAlgorithm().getKDFName() in ["PBKDF2HMAC", "ARGON2"] }
118118

119119
override DataFlow::Node getIterationSizeSrc() {
120120
this.requiresIteration() and
121-
// ASSUMPTION: ONLY EVER in arg 3 in PBKDF2HMAC
122-
result = Utils::getUltimateSrcFromApiNode(this.getParameter(3, "iterations"))
121+
if this.getAlgorithm().getKDFName() = "ARGON2"
122+
then result = Utils::getUltimateSrcFromApiNode(this.getKeywordParameter("iterations"))
123+
else
124+
// ASSUMPTION: ONLY EVER in arg 3 in PBKDF2HMAC
125+
result = Utils::getUltimateSrcFromApiNode(this.getParameter(3, "iterations"))
123126
}
124127

125128
override DataFlow::Node getSaltConfigSrc() {

0 commit comments

Comments
 (0)