Add a superclass for credential nodes

This commit is contained in:
Ed Minnix
2023-08-22 11:31:14 -04:00
parent 3219edc603
commit ee6cb96d07
2 changed files with 12 additions and 19 deletions

View File

@@ -6,32 +6,30 @@ import java
private import semmle.code.java.dataflow.DataFlow
private import semmle.code.java.dataflow.ExternalFlow
/**
* A node which represents the use of a credential.
*/
abstract class CredentialSinkNode extends DataFlow::Node { }
/**
* A node representing a password being passed to a method.
*/
class PasswordParameter extends DataFlow::Node {
PasswordParameter() { sinkNode(this, "credential-password") }
class PasswordSink extends CredentialSinkNode {
PasswordSink() { sinkNode(this, "credential-password") }
}
/**
* A node representing a username being passed to a method.
*/
class UsernameParameter extends DataFlow::Node {
UsernameParameter() { sinkNode(this, "credential-username") }
class UsernameSink extends CredentialSinkNode {
UsernameSink() { sinkNode(this, "credential-username") }
}
/**
* A node representing a cryptographic key being passed to a method.
*/
class CryptoKeyParameter extends DataFlow::Node {
CryptoKeyParameter() { sinkNode(this, "crypto-parameter") }
}
/**
* A node representing a credential being passed to a method.
*/
class CredentialParameter extends DataFlow::Node {
CredentialParameter() { sinkNode(this, "credential-other") }
class CryptoKeySink extends CredentialSinkNode {
CryptoKeySink() { sinkNode(this, "crypto-parameter") }
}
/**